Docker-Compose 与多个服务 [英] Docker-Compose with multiple services
问题描述
这是一个示例问题!永远不要在生产中这样做.在单独的容器中运行 NGINX/PHP/其他服务!
THIS IS A SAMPLE QUESTION! NEVER DO IT IN PRODUCTION. RUN NGINX / PHP / OTHER SERVICES IN SEPARATE CONTAINERS!
当我启动 docker-compose up
时,Ubuntu 容器退出,ubuntu 退出,代码为 0
.
When I start docker-compose up
the Ubuntu container exits with ubuntu exited with code 0
.
当我运行 docker run -d -ti -p 80:80 -v ~/sph/laravel52:/www/laravel ubuntu
时,一切正常.
When I run docker run -d -ti -p 80:80 -v ~/sph/laravel52:/www/laravel ubuntu
, all works fine.
如何使用 Docker Compose 复制这种行为?
How can I replicate this behavior using Docker Compose?
这是我的Dockerfile
:
# Version: 0.0.1
FROM ubuntu:15.04
ENV DEBIAN_FRONTEND noninteractive
#INSTALL ALL
RUN apt-get update && apt-get install -y
nano
php5-fpm
php5-mysql
nginx
#NGINX CONF
ADD nginx/sites-available/laravel.conf /etc/nginx/sites-available/
RUN rm /etc/nginx/sites-available/default
RUN mv /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-available/default
VOLUME /www
ENTRYPOINT nginx && service php5-fpm start && /bin/bash
CMD ["true"]
EXPOSE 80
和docker-compose.yml
:
version: '2'
services:
ubuntu:
build: .
container_name: ubuntu
volumes:
- ~/sph/laravel52:/www/laravel
ports:
- "80:80"
推荐答案
问题是您在运行容器时使用了选项 -t
.
The thing is that you are using the option -t
when running your container.
您能否检查是否启用了 tty
选项(请参阅 reference) 在容器保留的 docker-compose.yml 文件中跑步?
Could you check if enabling the tty
option (see reference) in your docker-compose.yml file the container keeps running?
version: '2'
services:
ubuntu:
build: .
container_name: ubuntu
volumes:
- ~/sph/laravel52:/www/laravel
ports:
- "80:80"
tty: true
这篇关于Docker-Compose 与多个服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!