Docker varnish 以命令开始但不以 docker-compose 开始
Docker varnish start with command but not with docker-compose
我是 docker 的新手,并尝试在其中转换我的实际 Web 堆栈。
目前我使用这个配置:
清漆 -> nginx -> php-fpm -> mysql
我已经转换了 php-fpm 和 nginx,现在尝试使用 varnish。
当我使用命令 运行 我的图像时,一切都很好,但是当我将它放入 docker-compose 时,我的容器将无限期重启。
命令:
name="varnish"
cd $installDirectory/$name
docker build -t $name .
docker rm -f $(docker ps -a | grep $name | cut -d' ' -f1)
docker run -d -P --name $name \
-p 80:80 \
--link nginx:nginx \
-v /home/webstack/varnish/:/etc/varnish/ \
-t $name
我的docker-compose.yml:
php-fpm:
restart: always
build: ./php-fpm
volumes:
- "/home/webstack/www/:/var/www/"
nginx:
restart: always
build: ./nginx
ports:
- "8080:8080"
volumes:
- "/home/webstack/nginx/:/etc/nginx/"
- "/home/webstack/log/:/var/log/nginx/"
- "/home/webstack/www/:/var/www/"
links:
- "php-fpm:php-fpm"
varnish:
restart: always
build: ./varnish
ports:
- "80:80"
volumes:
- "/home/webstack/varnish/:/etc/varnish/"
links:
- "nginx:nginx"
我没有结果 docker logs webstack_varnish_1
和 docker ps -a
结果显示:
688c5aace1b3 webstack_varnish "/bin/bash" 16 seconds ago Restarting (0) 5 seconds ago 0.0.0.0:80->80/tcp
在这里你可以看到我的 Dockerfile
:
FROM debian:jessie
# Update apt sources
RUN apt-get -qq update
RUN apt-get install -y curl apt-transport-https
RUN sh -c "curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add -"
RUN echo "deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1" > /etc/apt/sources.list.d/varnish-cache.list
# Update the package repository
RUN apt-get -qq update
# Install varnish
RUN apt-get install -y varnish
# Expose port 80
EXPOSE 80
请问我做错了什么?
此致。
您的清漆 Dockerfile 似乎缺少 ENTRYPOINT
and/or CMD
实际启动清漆的指令。
我们在这里找到了解决方案:
https://github.com/docker/compose/issues/2563
我必须将 tty: true
添加到我的 varnish 配置中。
此致。
我是 docker 的新手,并尝试在其中转换我的实际 Web 堆栈。 目前我使用这个配置: 清漆 -> nginx -> php-fpm -> mysql
我已经转换了 php-fpm 和 nginx,现在尝试使用 varnish。
当我使用命令 运行 我的图像时,一切都很好,但是当我将它放入 docker-compose 时,我的容器将无限期重启。
命令:
name="varnish"
cd $installDirectory/$name
docker build -t $name .
docker rm -f $(docker ps -a | grep $name | cut -d' ' -f1)
docker run -d -P --name $name \
-p 80:80 \
--link nginx:nginx \
-v /home/webstack/varnish/:/etc/varnish/ \
-t $name
我的docker-compose.yml:
php-fpm:
restart: always
build: ./php-fpm
volumes:
- "/home/webstack/www/:/var/www/"
nginx:
restart: always
build: ./nginx
ports:
- "8080:8080"
volumes:
- "/home/webstack/nginx/:/etc/nginx/"
- "/home/webstack/log/:/var/log/nginx/"
- "/home/webstack/www/:/var/www/"
links:
- "php-fpm:php-fpm"
varnish:
restart: always
build: ./varnish
ports:
- "80:80"
volumes:
- "/home/webstack/varnish/:/etc/varnish/"
links:
- "nginx:nginx"
我没有结果 docker logs webstack_varnish_1
和 docker ps -a
结果显示:
688c5aace1b3 webstack_varnish "/bin/bash" 16 seconds ago Restarting (0) 5 seconds ago 0.0.0.0:80->80/tcp
在这里你可以看到我的 Dockerfile
:
FROM debian:jessie
# Update apt sources
RUN apt-get -qq update
RUN apt-get install -y curl apt-transport-https
RUN sh -c "curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add -"
RUN echo "deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1" > /etc/apt/sources.list.d/varnish-cache.list
# Update the package repository
RUN apt-get -qq update
# Install varnish
RUN apt-get install -y varnish
# Expose port 80
EXPOSE 80
请问我做错了什么?
此致。
您的清漆 Dockerfile 似乎缺少 ENTRYPOINT
and/or CMD
实际启动清漆的指令。
我们在这里找到了解决方案: https://github.com/docker/compose/issues/2563
我必须将 tty: true
添加到我的 varnish 配置中。
此致。