【发布时间】:2021-10-25 15:06:44
【问题描述】:
我正在使用这个 repo 来建立一个本地的 wordpress 开发环境: https://github.com/mjstealey/wordpress-nginx-docker#tldr
我劫持了docker-compose来更改nginx端口,还尝试在nginx服务器上安装openssl和vim。但是当我执行 docker-compose up 时,nginx 服务器永远无法正常启动。
这是我看到的:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57cf3dff059f nginx:latest "bash" About a minute ago Restarting (0) 14 seconds ago nginx
我尝试像这样在 docker-compose 中引用一个 Dockerfile:
nginx:
image: nginx:${NGINX_VERSION:-latest}
container_name: nginx
ports:
- '8085:8085'
- '443:443'
build: .
volumes:
- ${NGINX_CONF_DIR:-./nginx}:/etc/nginx/conf.d
- ${NGINX_LOG_DIR:-./logs/nginx}:/var/log/nginx
- ${WORDPRESS_DATA_DIR:-./wordpress}:/var/www/html
- ${SSL_CERTS_DIR:-./certs}:/etc/letsencrypt
- ${SSL_CERTS_DATA_DIR:-./certs-data}:/data/letsencrypt
depends_on:
- wordpress
restart: always
请注意显示“build: .”的行。 这是我的 Dockerfile 的内容:
FROM debian:buster-slim
RUN apt-get update
# installing vim isn't necessary. but just handy.
RUN apt-get -y install openssl
RUN apt-get -y install vim
很明显,我做错了什么。也许我应该直接在 docker-compose 中为 nginx 服务器定义任务? 我想找到一种方法来将我们的定制和原始代码完全分开。但也许这是不可能的。
谢谢
编辑 1
这就是 Dockerfile 的样子:
FROM nginx:latest
RUN apt-get update
&& apt-get -y install openssl
&& apt-get -y install vim
还有 docker-compose.yml 的 nginx 部分:
nginx:
#image: nginx:${NGINX_VERSION:-latest}
container_name: nginx
ports:
- '8085:8085'
- '443:443'
build: .
volumes:
- ${NGINX_CONF_DIR:-./nginx}:/etc/nginx/conf.d
- ${NGINX_LOG_DIR:-./logs/nginx}:/var/log/nginx
- ${WORDPRESS_DATA_DIR:-./wordpress}:/var/www/html
- ${SSL_CERTS_DIR:-./certs}:/etc/letsencrypt
- ${SSL_CERTS_DATA_DIR:-./certs-data}:/data/letsencrypt
depends_on:
- wordpress
restart: always
【问题讨论】:
-
您对
docker build使用的确切命令是什么?您在运行docker-compose up时是否看到任何错误? -
Nginx 运行时如何使用
vim或openssl二进制文件;你可以使用未修改的nginx图像吗?如果您确实需要这些更改,您应该尝试在单个apt-get install命令中安装所有软件包(这会明显更快)并且您应该在单个命令中RUN apt-get update && apt-get install(以避免重建时出现层缓存问题)。 -
你应该阅读the docs中的Using environment variables in nginx configuration (new in 1.19)
-
@code_monk - 我会看看,但我不认为这是我的问题的根本原因?因为......没有对我的新 Dockerfile 的构建引用,一切都像使用最新的 nginx 映像一样工作......
标签: docker nginx docker-compose