Reputation: 1006
I got the following containers:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f75e2629d5b5 sameersbn/gitlab:10.2.2 "/sbin/entrypoint.sh…" 12 minutes ago Up 11 minutes 80/tcp, 0.0.0.0:22->22/tcp, 443/tcp gitlab_app_1
8fc5b1cec6d5 sameersbn/redis:latest "/sbin/entrypoint.sh…" 12 minutes ago Up 12 minutes 6379/tcp gitlab_redis_1
44db2400787d sameersbn/postgresql:9.6-2 "/sbin/entrypoint.sh" 12 minutes ago Up 12 minutes 5432/tcp gitlab_postgresql_1
31a3423a66c7 nextcloud_web "nginx -g 'daemon of…" 37 minutes ago Up 37 minutes 80/tcp, 443/tcp nextcloud_web_1
14334d36116a nextcloud_app "/entrypoint.sh php-…" 37 minutes ago Up 37 minutes 9000/tcp nextcloud_app_1
258d317934a7 nextcloud_cron "/cron.sh" 37 minutes ago Up 37 minutes 9000/tcp nextcloud_cron_1
c66f31c762d8 mariadb "docker-entrypoint.s…" 37 minutes ago Up 37 minutes 3306/tcp nextcloud_db_1
53e8fa0e5a9f redis "docker-entrypoint.s…" 37 minutes ago Up 37 minutes 6379/tcp nextcloud_redis_1
e4c147824046 tvial/docker-mailserver:latest "/bin/sh -c 'supervi…" About an hour ago Up 33 minutes 0.0.0.0:25->25/tcp, 110/tcp, 0.0.0.0:143->143/tcp, 0.0.0.0:587->587/tcp, 465/tcp, 995/tcp, 0.0.0.0:993->993/tcp, 4190/tcp mail_mail_1
4d99cf5a542a nginx "nginx -g 'daemon of…" About an hour ago Up 33 minutes 80/tcp, 443/tcp mail_ssl_1
a4e9b76b91df jrcs/letsencrypt-nginx-proxy-companion "/bin/bash /app/entr…" About an hour ago Up About an hour main_letsencrypt_1
334d501060b4 jwilder/nginx-proxy "/app/docker-entrypo…" About an hour ago Up 22 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp main_nginx-proxy_1
2ff7189e6272 mattermost_db "/entrypoint.sh post…" About an hour ago Up About an hour 5432/tcp mattermost_db_1
4d99ebc5ec02 mattermost_app "/entrypoint.sh plat…" About an hour ago Up About an hour 80/tcp mattermost_app_1
94007cb05dd3 mattermost_web "/entrypoint.sh" About an hour ago Up About an hour 80/tcp, 443/tcp mattermost_web_1
As u can see there are multiple containers with the same ports. For example nextcloud_redis
and gitlab_redis
. Since I am using nginx-proxy I have to put all containers into the same network. This causes a problems, because for example the gitlab_app tries to use the nextcloud_redis.
In the following the docker-compose.
Nextcloud
version: '3'
services:
db:
image: mariadb
# image: mysql
restart: always
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=XXX
env_file:
- db.env
redis:
image: redis
restart: always
app:
build: ./app
restart: always
volumes:
- ./data:/var/www/html
environment:
- MYSQL_HOST=db
env_file:
- db.env
depends_on:
- db
- redis
web:
build: ./web
restart: always
expose:
- "443"
- "80"
volumes:
- ./data:/var/www/html:ro
environment:
- VIRTUAL_HOST=cloud.XXX.net
- LETSENCRYPT_HOST=cloud.XXX.net
- [email protected]
depends_on:
- app
cron:
build: ./app
restart: always
volumes:
- ./data:/var/www/html
entrypoint: /cron.sh
depends_on:
- db
- redis
networks:
default:
external:
name: reverse-proxy
Gitlab
version: '2'
services:
redis:
restart: always
image: sameersbn/redis:latest
command:
- --loglevel warning
volumes:
- ./redis:/var/lib/redis:Z
postgresql:
restart: always
image: sameersbn/postgresql:9.6-2
volumes:
- ./postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=XXX
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm
app:
restart: always
image: sameersbn/gitlab:10.2.2
depends_on:
- redis
- postgresql
expose:
- "80"
ports:
- "22:22"
volumes:
- ./data:/home/git/data:Z
environment:
- VIRTUAL_HOST=gitlab.XXX.net
- DEBUG=false
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=XXX
- DB_NAME=gitlabhq_production
- REDIS_HOST=redis
- REDIS_PORT=6379
- TZ=Europe/Berlin
- GITLAB_TIMEZONE=Berlin
- GITLAB_HTTPS=true
- SSL_SELF_SIGNED=true
[...]
- OAUTH_CROWD_SERVER_URL=
- OAUTH_CROWD_APP_NAME=
- OAUTH_CROWD_APP_PASSWORD=
- OAUTH_AUTH0_CLIENT_ID=
- OAUTH_AUTH0_CLIENT_SECRET=
- OAUTH_AUTH0_DOMAIN=
- OAUTH_AZURE_API_KEY=
- OAUTH_AZURE_API_SECRET=
- OAUTH_AZURE_TENANT_ID=
networks:
default:
external:
name: reverse-proxy
Whats the best solution to fix this issue?
Upvotes: 0
Views: 3390
Reputation: 541
Try use networks:
(At the moment I have no where to try it, so I hope it works, or at least help you decipher the dilemma)
version: '3'
services:
db:
image: mariadb
# image: mysql
restart: always
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=XXX
env_file:
- db.env
networks:
- net_internal_next
redis:
image: redis
restart: always
networks:
- net_internal_next
app:
build: ./app
restart: always
volumes:
- ./data:/var/www/html
environment:
- MYSQL_HOST=db
env_file:
- db.env
depends_on:
- db
- redis
networks:
- net_internal_next
web:
build: ./web
restart: always
expose:
- "443"
- "80"
volumes:
- ./data:/var/www/html:ro
environment:
- VIRTUAL_HOST=cloud.XXX.net
- LETSENCRYPT_HOST=cloud.XXX.net
- [email protected]
depends_on:
- app
networks:
- net_internal_next
- net_external_next
cron:
build: ./app
restart: always
volumes:
- ./data:/var/www/html
entrypoint: /cron.sh
depends_on:
- db
- redis
networks:
- net_internal_next
networks:
net_external_next:
external:
name: reverse-proxy
net_internal_next:
driver: bridge
--
version: '2'
services:
redis:
restart: always
image: sameersbn/redis:latest
command:
- --loglevel warning
volumes:
- ./redis:/var/lib/redis:Z
networks:
- net_internal_git
postgresql:
restart: always
image: sameersbn/postgresql:9.6-2
volumes:
- ./postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=XXX
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm
networks:
- net_internal_git
app:
restart: always
image: sameersbn/gitlab:10.2.2
depends_on:
- redis
- postgresql
expose:
- "80"
ports:
- "22:22"
volumes:
- ./data:/home/git/data:Z
environment:
- VIRTUAL_HOST=gitlab.XXX.net
- DEBUG=false
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=XXX
- DB_NAME=gitlabhq_production
- REDIS_HOST=redis
- REDIS_PORT=6379
- TZ=Europe/Berlin
- GITLAB_TIMEZONE=Berlin
- GITLAB_HTTPS=true
- SSL_SELF_SIGNED=true
[...]
- OAUTH_CROWD_SERVER_URL=
- OAUTH_CROWD_APP_NAME=
- OAUTH_CROWD_APP_PASSWORD=
- OAUTH_AUTH0_CLIENT_ID=
- OAUTH_AUTH0_CLIENT_SECRET=
- OAUTH_AUTH0_DOMAIN=
- OAUTH_AZURE_API_KEY=
- OAUTH_AZURE_API_SECRET=
- OAUTH_AZURE_TENANT_ID=
networks:
- net_internal_git
- net_external_git
networks:
net_external_git:
external:
name: reverse-proxy
net_internal_git:
driver: bridge
Upvotes: 2