Как работать с образом докера nginx?
У меня есть другая отдельная проблема, но я нашел решение для нее в следующем посте. Как и там предлагается, мне нужно будет изменить мой 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 ответ
Есть несколько способов сделать это.
- Создайте файл nginx.conf локально и скопируйте его в контейнер во время запуска контейнера (с помощью команды COPY - Dockerfile)
- Создайте свой собственный образ. Затем используйте 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>
....
....
....
- Войдите в контейнер и установите текстовый редактор (vi, nano и т. Д.). И откройте файл nginx.conf с помощью установленного текстового редактора и примените изменения.
Обязательно измените настройки в соответствии с вашей средой. Я предпочитаю, чтобы вы выбрали вариант 2.