patterndockerMinor
Docker Compose V3 app container can't access couchdb container
Viewed 0 times
cancontainerappdockercouchdbcomposeaccess
Problem
I am trying to connect to couchdb through the container but my app is not seeing it.
However if I use the external address
it works but I need a connection through network with the internal port
Docker-Compose.yml
ENV FILE
I Also tried links instead of networks but the same issue.
Any Ideas ?
However if I use the external address
123.456.789.123:12345 (server_ip:external_port) it works but I need a connection through network with the internal port
5986.Docker-Compose.yml
version: '3'
services:
couchdb:
image: couchdb:latest
restart: always
volumes:
- couchdb-data-volume:/usr/local/var/lib/couchdb
env_file: .env.docker
ports:
- "12345:5986"
networks:
app-net:
aliases:
- couchdb
app:
build: .
image: app
restart: always
depends_on:
- couchdb
env_file: .env.docker
networks:
app-net:
driver: bridge
volumes:
couchdb-data-volume:ENV FILE
NODE_ENV=production
COUCHDB_SERVER=http://user:pass@couchdb:5986
COUCHDB_USER=user
COUCHDB_PASSWORD=passI Also tried links instead of networks but the same issue.
links:
- couchdbAny Ideas ?
Solution
Your mistake is that you are did not register the app service on the app-net network. To allow containers to connect with one another, they have to share a network and then use the image name as the domain name. Docker provides a network internal DNS service.
The URL from the app to the couchdb service would be
version: '3'
services:
couchdb:
image: couchdb:latest
restart: always
volumes:
- couchdb-data-volume:/usr/local/var/lib/couchdb
env_file: .env.docker
ports:
- "12345:5986"
networks:
app-net:
app:
build: .
image: app
container_name: app
restart: always
depends_on:
- couchdb
env_file: .env.docker
networks:
- app-net
volumes:
couchdb-data-volume:
networks:
app-net:The URL from the app to the couchdb service would be
http://couchdb:5986. To test this, open bash inside the app service with docker exec -it app. This depends on the container_name setting.Code Snippets
version: '3'
services:
couchdb:
image: couchdb:latest
restart: always
volumes:
- couchdb-data-volume:/usr/local/var/lib/couchdb
env_file: .env.docker
ports:
- "12345:5986"
networks:
app-net:
app:
build: .
image: app
container_name: app
restart: always
depends_on:
- couchdb
env_file: .env.docker
networks:
- app-net
volumes:
couchdb-data-volume:
networks:
app-net:Context
StackExchange DevOps Q#3349, answer score: 1
Revisions (0)
No revisions yet.