扩展Dockerfile nginx映像
我遇到了一个nginx限制问题,需要我扩展nginx dockerfile的配置,我发现列出了一个扩展Dockerfile nginx映像,docker,nginx,dockerfile,jwilder-nginx-proxy,Docker,Nginx,Dockerfile,Jwilder Nginx Proxy,我遇到了一个nginx限制问题,需要我扩展nginx dockerfile的配置,我发现列出了一个dockerfile扩展逻辑,但我很难让它正常工作,我不确定副本应该使用什么/app/for因为据我所知,我不需要将任何东西复制到图像中,我只需要那个神奇的脚本 这是整个Dockerfile供参考 FROM jwilder/nginx-proxy COPY . /app/ RUN { \ # Increased the number of worker_processes from any
dockerfile
扩展逻辑,但我很难让它正常工作,我不确定副本应该使用什么/app/
for因为据我所知,我不需要将任何东西复制到图像中,我只需要那个神奇的脚本
这是整个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中的所有内容。我发现它被称为派生dockerfile
,您需要在repo中运行它来构建该映像(而不是在您可能从中获得1GB构建上下文的repo中)
因此,解决方案是:
Dockerfile
替换为此处更新的文档
kmdanikowski/nginx proxy公开提供
,但我建议你自己做,这样它可以是最新的。将他的应用程序放到图像中。你可以忽略这一点
的确,您必须删除COPY
-行,然后您将获得带有更改设置的nginx代理
Docker将始终创建。上下文包含同一工作目录中所有文件的副本。
因此,如果运行docker build.
,则当前文件夹中的所有文件(和目录)都将添加到构建上下文中。
切勿在根目录或主目录上运行docker build
根据KevinDanikowski的回答:是的,他的步骤是有效的,但这些步骤是不正确的,不能解释问题
您无需克隆任何git回购即可使Dockerfile
正常工作。
在这种情况下,它会起作用,因为@KevinDanikowski的链接回购协议实际上并不完整。
只创建一个新文件夹并将Dockerfile
放入其中要容易得多
在BASH
中:
$mkdir新文件夹
$cd新文件夹
$cat>Dockerfile您可以从任何地方运行问题中的Dockerfile(而不使用有问题的COPY
行),就像您可以构建“普通”文件一样python:3.9中的image没有实际签出Docker库映像源。@DavidMaze我确实尝试过,但没有成功。我想你可以,但至少根据我的经验,这不是真的。一个选项是在运行映像时使用Docker run-v
选项替换配置文件。这无法实现不要进行就地编辑--您需要提供一个完整的配置文件--但这种方法也不需要自定义映像。构建上下文变得非常庞大(超过1GB),所以我猜它正在捕获repo中的所有内容,您可能需要一个file@DavidMaze是的,我知道了,我想它只是“知道”配置哈哈,我错误地认为我可以从任何地方运行dockerfile,因为它正在拉取该图像,但事实并非如此,它必须来自您提到的实际目录。@KevinDanikowski,所以我解决了您的问题?;)抱歉,我是解决问题的人,但直到48小时后我才能检查它是否已解决(idk为什么有人投了反对票)。我会投你的票,因为它会提供额外的上下文。我不是反对票的人,但我不知道你的答案如何解决这个问题。“我找到了,你需要在repo中运行它来构建该图像。因此,在本例中,请从中使用更新的Dockerfile替换Dockerfile,然后运行它。”,我在Q中提到的“构建大小…1GB”不是指我从错误的位置运行它,基本上就是你的问题添加了上下文