【问题标题】:Docker Compose run a commandDocker Compose 运行命令
【发布时间】:2016-05-17 12:44:08
【问题描述】:
我想用 docker compose 运行一个命令,它不工作,容器启动并消失,没有任何错误
web:
image: nginx:latest
ports:
- "8888:80"
volumes:
- ./dir:/dir
command: bash -c "chown -R www-data:www-data /dir"
links:
- php
我认为命令正在执行但容器停止了,我应该添加其他东西吗?
【问题讨论】:
标签:
nginx
docker
docker-compose
【解决方案1】:
我通常做和推荐的是只在 Dockerfile (RUN chown -R www-data:www-data /dir) 中使用命令。如果您需要在“启动时”运行任何东西(例如保持容器运行),您可以在 docker-compose.yml 中执行此操作:
web:
image: nginx:latest
ports:
- "8888:80"
volumes:
- ./dir:/dir
entrypoint: /root/start_services.sh
links:
- php
在 start_services.sh 中,您需要运行 tail -f /var/log/syslog 以保持容器运行。
start_services.sh 文件被复制到容器内的 /root 目录中。