docker - 如何使用复制到容器的站点启动 nginx docker 容器?
问题描述
我写了这样一个 docker 文件,运行容器并打开 localhost,打开 nginx,尽管该站点应该从 /var/www/html 文件夹打开。如何解决问题?
FROM nginx
RUN apt-get update && apt-get -y install zip
WORKDIR /02_Continuous_Delivery/html
COPY . /var/www/html
RUN rm -f /var/www/html/site.zip; zip -r /var/www/html/site.zip /02_Continuous_Delivery/html
EXPOSE 80
解决方案
您的问题是默认情况下 nginx 映像提供如下配置(/etc/nginx/conf.d/default.conf):
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
因此,您应该将您的站点复制到/usr/share/nginx/html目录或提供您的自定义配置并将位置根目录设置为/var/www/html目录。
对于第二种解决方案,您可以创建文件default.conf,其内容如下:
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /var/www/html;
index index.html index.htm;
}
}
并将其复制到Dockerfile中的 /etc/nginx/conf.d/ 目录
COPY default.conf /etc/nginx/conf.d/
推荐阅读
- angularjs - AngularJS:带有 $http 调用的测试方法引发错误
- c# - 更改列的 IDENTITY 属性,需要删除并重新创建列
- python - 具有所有人权限的 python tempfile.mkdtemp
- android - 在 cordova 构建期间未找到 dialogCornerRadius、fontVariationSettings 和 ttcIndex
- jenkins - 依次使用不同的参数在循环中触发管道
- rest - Rundeck:列出特定项目的所有工作
- c# - C#中'in'关键字的用途是什么?
- android - sh: 0: 无法打开 mysql2sqlite
- jmeter - 在 jmeter 中启用服务器证书身份验证
- function - 函数中的指针不返回正确的值