[英]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 構建上下文的存儲庫中。
所以解決方案:
在此處將Dockerfile
替換為您的更新版本
運行 docker 構建命令
我只是這樣做並推送,作為kmdanikowski/nginx-proxy
公開可用,但我建議你自己做,這樣它就可以是最新的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.