0

我有另一个单独的问题,但我在下面的帖子中找到了解决方案。正如那里所建议的,我需要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;
        }
    }
}

在 file: 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;"]
4

1 回答 1

0

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

  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

于 2019-01-22T11:39:25.973 回答