【问题标题】:How to manage nginx docker image?如何管理 nginx docker 镜像?
【发布时间】:2019-01-22 08:48:06
【问题描述】:

我遇到了另一个单独的问题,但我在 following post 中找到了解决方案。正如那里所建议的,我需要通过添加部分来修改我的nginx server

http {
   ## ...
   ## other configuration

   server {
        listen 80;

        server_name yourservername.com;
        root html/path_to_your_project;

        index index.php index.html;

        location / {
            try_files $uri $uri/ /index.html;
        }
    }
}

在文件中:etc/nginx/sites-enabled/default.cnf,似乎已经有标签server {,我只需要在其中添加上面的部分。

但是,由于我使用的是 docker 映像而不是真正的服务器本身,因此我不确定如何完成此操作。这是我的.Dockerfile,我不确定我需要在其中进行哪些更改。

# build stage
FROM node:9.11.1-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm i npm@latest -g && \
    npm install
COPY . .
RUN node build/build.js

# production stage
FROM nginx:1.13.12-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

【问题讨论】:

  • 我将基于 alpine 创建自己的映像,并安装和配置 nginx,然后将其用作文件的映像。所以基本上我会拉一个高山图像启动一个交互式会话编辑 nginx .cnf 文件保存它就可以了。

标签: docker nginx dockerfile nginx-config docker-command


【解决方案1】:

有几种方法可以做到这一点。

  1. 在本地创建 nginx.conf 文件,并在容器启动时将其复制到容器中(使用 COPY 命令 - Dockerfile)
  2. 创建您自己的图像。然后使用 docker-compose 来启动容器。在那里,您可以将容器的 nginx 配置位置卷到本地主机位置的某个位置。这将允许您随时更改配置,而无需登录容器。

这是我使用的 docker-compose 示例

version: '2.1'
services:
  <containerAlias>:
    image: <myNginxImage>:<tag>
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
      - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./logs/nginx_logs:/var/log/nginx
    privileged: true
    networks:
      <MyNetworkName>:
        ipv4_address: <IP>
    restart: always
    container_name: <containerName>

 ....
 ....
 ....
  1. 登录容器并安装文本编辑器(vi、nano 等)。并使用已安装的文本编辑器打开 nginx.conf 文件并应用更改。

确保根据您的环境更改配置。 我希望你选择选项 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 2020-07-03
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多