Как работать с образом докера nginx? - PullRequest
0 голосов
/ 22 января 2019

У меня другая отдельная проблема, но я нашел решение для нее в следующем посте . Как и там предлагается, мне нужно будет изменить мой 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 {, и мне просто нужно добавить раздел сверху внутри него.

Но, поскольку я работаю с образом докера, а не с самим реальным сервером, я не уверен, как этого добиться. Это мой .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;"]

1 Ответ

0 голосов
/ 22 января 2019

Есть несколько способов сделать это.

  1. Создайте файл nginx.conf локально и скопируйте его в контейнер во время запуска контейнера (с помощью команды COPY - Dockerfile)
  2. Создайте свой собственный образ. Затем используйте docker-compose для создания контейнеров. Там вы можете разместить nginx конфигурации вашего контейнера где-нибудь в вашем локальном хосте. Это позволит вам изменять конфигурации в любое время без входа в контейнер.

Это пример создания docker, который я использую

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 .

...