我知道这个问题已经被问过多次了,我在这里已经看了很多,但是我仍然无法弄清楚。
我有一个非常简单的docker-compose.yml文件,该文件可以加载3个图像:nginx,php7和postgresql。
这3个链接在一起,所以我有一个LAPP堆栈(是的,我意识到我使用的是旧版本,一旦我掌握了基础知识,我会尽快升级)。
除了我的php代码是绑定安装的卷,它最终在容器中具有错误的文件所有权,因此它确实可以工作。
我尝试更改撰写文件,以不使用映像加载nginx,而是从Dockerfile构建文件(很抱歉,如果我的行话不正确,我仍在学习docker)。
当我将其更改为使用docker文件并执行docker-compose时,它确实启动了,但Web容器几乎立即死亡。
问题: 为什么在没有docker文件的情况下无法正常工作?如果需要使用docker文件,该怎么做才能使容器保持正常运行。
web:
build: './docker/nginx'
#image: nginx:latest # works if I load nginx like this and comment out the above line
stdin_open: true
tty: true
ports:
- "8080:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php:
#image: php:7-fpm
build: './docker/php'
links:
- postgres
volumes:
- ./code:/code
postgres:
image: postgres:latest
environment:
- POSTGRES_USER=un_rftags
- POSTGRES_PASSWORD=pwd_RFT@gs01
- POSTGRES_DB=db_rftags
ports:
- "9090:5432"
和我的nginx Dockerfile:
FROM nginx:latest
RUN mkdir -p /code && chown www-data /code -R