![](/img/trans.png)
[英]How to use an environment variable from a docker-compose.yml in a Dockerfile?
[英]Docker: How to use a Dockerfile in addition to docker-compose.yml
我正在使用这个 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 文件中使用的基本映像?:
FROM nginx:latest
然后在 docker 文件中,因为您正在创建自己的 nginx 映像的自定义版本,您应该提供自定义名称或标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.