簡體   English   中英

擴展 Dockerfile nginx 圖像

[英]Extend Dockerfile nginx image

I've run into an nginx limiting issue that requires me to extend config of my nginx dockerfile, I found a Dockerfile extension logic listed here but I'm having trouble getting it to work, I'm not sure what I'm supposed to用於COPY. /app/ COPY. /app/因為我不需要將任何內容復制到圖像中,我只需要那個魔法腳本

這里是整個 Dockerfile 供參考

FROM jwilder/nginx-proxy
COPY . /app/
RUN { \ 
    # Increased the number of worker_processes from any number to 4
    sed -i 's/\(worker_processes\s*\)[0-9]*;/\14;/' /etc/nginx/nginx.conf; \
    # Increased the number of worker_connections from any number to 19000
    sed -i 's/\(worker_connections\s*\)[0-9]*;/\119000;/' /etc/nginx/nginx.conf; \
}

刪除COPY不起作用,構建上下文變得很大(超過 1GB),所以我猜它正在抓取它所在的 repo 中的所有內容。

來自 Github 的涉水者將他的應用程序放入圖像中。 你可以忽略它。

確實,您必須刪除COPY -line,您將獲得具有更改設置的nginx-proxy

Docker 將始終創建構建上下文 上下文包含位於同一工作目錄中的所有文件的副本。
因此,如果您運行docker build. ,那么當前文件夾中的所有文件(和目錄)都將被添加到構建上下文中。
切勿在根目錄或主目錄上運行docker build


根據 KevinDanikowski 的回答:是的,他的步驟有效,但這些步驟不正確並且不能解釋問題。

您無需克隆任何 git-repo 即可使Dockerfile正常工作。
在這種情況下,它會起作用,因為來自@KevinDanikowski 的鏈接回購並不完整。
只創建一個新文件夾並將Dockerfile放在那里要容易得多。

BASH

$ mkdir newFolder
$ cd newFolder
$ cat > Dockerfile << EOF
FROM jwilder/nginx-proxy

RUN { \ 
    # Increased the number of worker_processes from any number to 4
    sed -i 's/\(worker_processes\s*\)[0-9]*;/\14;/' /etc/nginx/nginx.conf; \
    # Increased the number of worker_connections from any number to 19000
    sed -i 's/\(worker_connections\s*\)[0-9]*;/\119000;/' /etc/nginx/nginx.conf; \
}
EOF
$ docker build .

我發現它被稱為derived dockerfile ,您需要在存儲庫中運行它來構建該映像(而不是在您可能從中獲得 1GB 構建上下文的存儲庫中。

所以解決方案:

  1. 克隆源代碼庫https://github.com/nginx-proxy/nginx-proxy

  2. 在此處將Dockerfile替換為您的更新版本

  3. 運行 docker 構建命令

我只是這樣做並推送,作為kmdanikowski/nginx-proxy公開可用,但我建議你自己做,這樣它就可以是最新的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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