![](/img/trans.png)
[英]docker-compose exited with code 0 - convert docker run command to docker-compose up?
[英]Docker container exited with code 0 after docker-compose up -d
我知道这个问题已经在各种情况下被问过,但尽管我在互联网上阅读了所有内容,但我仍然被卡住了。
我想在构建容器“mywebsite”后执行一个脚本, ENTRYPOINT
我使用了ENTRYPOINT
,我知道在正常使用中,执行ENTRYPOINT
命令后,容器“mywebsite”退出。 我尝试了几种技巧来避免退出,不幸的是没有成功。
在我的DOCKERFILE
我有这个:
FROM php:7.1.17-apache
[...]
WORKDIR /var/www
COPY docker-entrypoint.sh /var/www/docker-entrypoint.sh
ENTRYPOINT ["sh", "/var/www/docker-entrypoint.sh"]
然后在我的 docker-entrypoint.sh 我有这个:
#!/bin/bash
set -e
cd www
chown -R www-data:www-data sites modules themes
exec "$@"
这是我的 docker-compose.yml :
version: '3.3'
services:
mywebsite:
build: .
extra_hosts:
- "mywebsite.local:127.0.0.1"
hostname: mywebsite
domainname: local
ports:
- 8088:80
volumes:
- ./www:/var/www/www
- ./vendor:/var/www/vendor
- ./scripts:/var/www/scripts
links:
- database:database
restart: always
tty: true
database:
image: mysql:5.5.49
container_name: mysql-container
ports:
- 3307:3306
volumes:
- ./www/dumps/mywebsite.sql:/docker-entrypoint-initdb.d/dump.sql
restart: always
command: --max_allowed_packet=32505856
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mywebsite
构建时,所有步骤都很好,一切都设置正确,但容器“mywebsite”不断退出。 (“数据库”服务运行良好)
我曾使用tty: true
和exec "$@"
但这些都不起作用。
你可以用像tail -f /dev/null
这样的命令结束
我经常在我的 docker-compose.yml 中直接使用它的command: tail -f /dev/null
。 很容易看出我是如何保持容器运行的。
从 postgis 图像创建自己的图像时,我遇到了同样的问题。 问题是我添加了一个入口点。 当我删除入口点,再次构建图像时,docker-compose 确实启动了我的容器并且 postgis 正在接受连接。
文件
FROM postgis/postgis:12-master
COPY organisation.sql
#ENTRYPOINT ["docker-entrypoint.sh"] #This was the problem
在 docker-compose 中,我不需要命令或 tty。
version: "3.7"
services:
mydb:
image: mydb:latest
container_name: mytest
ports:
- "5432:5432"
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: secret
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.