I am trying to build services using docker-compose but containers started using docker-compose is stopping immediately as compose script is over. But when i am creating container using docker run for the same service image it is working.
Here is my compose script:
version: '2.1'
networks:
composetestnetwork:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.19.0.0/16
gateway: 172.19.0.1
services:
composetestdb:
build:
context: .
dockerfile: Dockerfile-testdb
cap_add:
- ALL
container_name: my-db-compose-container
labels:
db.description: "This is a test db"
volumes:
- c:/Users:/data
networks:
composetestnetwork:
ipv4_address: 172.19.0.5
ports:
- "3306:3306"
command: 'bash'
What can be done to fix this.
If you use bash
as the command
, but without a terminal, it will exit immediately. This is because when bash starts up, if there is no terminal attached, and it has no script or other command to execute, it has nothing to do, so it exits (by design).
You can either use a different command
, or attach a terminal with tty: true
as part of the definition of this service.
services:
composetestdb:
tty: true
...
I have the same problem, but tty : true
doesn't resolve the problem for me.
This is my docker-compose file :
---
version: "3"
services :
data:
container_name: data
environment:
- MYSQL_ROOT_PASSWORD=0283
image: mysql:5.7
restart: always
volumes:
- "./database:/var/lib/mysql"
ports:
- "3306:3306"
mail:
container_name: mail
image: djfarrelly/maildev
ports:
- "1080:80"
- "1025:25"
web:
container_name: web
image: "web:php7.1a"
links:
- mail
- data
ports:
- "80:80"
volumes:
- "./www:/var/www/html"
working_dir : /var/www/html
tty: true
command:
echo "test"
#bash -c "php composer.phar self-update"
After command
, Docker return me : "the container is exited (0)"
If I comment these lines, the container starts fine.
Windows 10 Pro
Docker version 18.09.2, build 6247962
Docker-compose version 1.23.2, build 1110ad01
Thanks,