簡體   English   中英

Docker:除了 docker-compose.yml 之外,如何使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM