docker - Dockerfile 复制文件
问题描述
我正在编写一个 Dockerfile 来创建一个具有基本 http 身份验证的 nginx 映像。我需要复制我的本地 nginx.conf 文件和一个包含登录信息 (htpasswd) 的文件,并将其写入我的 Dockerfile,但它似乎不起作用。当我查看容器中的 nginx.conf 时,它仍然是默认设置,并且网页上不存在身份验证功能。帮助?
FROM nginx:latest
ADD ./gilbard /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./htpasswd /etc/nginx/conf.d/.htpasswd
# Expose port
EXPOSE 80
解决方案
你的方法是正确的。
如果COPY
工作目录中不存在文件,则构建将生成错误。
您的构建|运行命令可能有错误,请将这些添加到您的问题中。
我能够重现您的问题,并且我的问题nginx.conf
被正确复制。
more ./nginx.conf
Hello Freddie
docker build --tag=58188265 --file=./Dockerfile .
docker run --interactive --tty 58188265 /bin/sh -c "more /etc/nginx/nginx.conf"
Hello Freddie
推荐阅读
- c++ - 如何使用管道通过文件在父子之间共享数据?
- java - Java注释处理器不在生成的源中生成文件
- powershell - 如何在powershell中读取machine.config并检查是否存在密钥
- javascript - 在 Angular 中调用远程 URL 时出现 CORS 策略错误
- r - 如何自定义 ctree(包 'party')?
- google-apps-script - 仅当文件存在时如何“复制到工作表”
- r - install.packages 'path' 中的警告不可写 R
- java - 模拟构建器模式的外部类中存在的方法(单元测试)
- reactjs - 如何将 authToken 设置为 localStorage
- python - 更改附件标题 MIME python