2015-02-02 5 views
3

Я использую официальное изображение докеры nginx (https://registry.hub.docker.com/_/nginx/). Когда я изменяю Index.html, я не вижу изменений. Установка sendfile off в nginx.conf не помогла.Как отключить кеширование Nginx при запуске Nginx с помощью Docker

Я только вижу изменение, если я перестрою свое изображение.

Вот мой Dockerfile:

FROM nginx 
COPY . /usr/share/nginx/html 
COPY nginx/nginx.conf /etc/nginx/nginx.conf 
COPY nginx/default.conf /etc/nginx/conf.d/default.conf 

И это команды, которые я использую, чтобы построить и запустить его:

docker build -t some-nginx . 
docker run --name app1 -p 80:80 -v $(pwd):/user/share/nginx/html -d some-nginx 

Спасибо

ответ

2

Это не кэширование. Как только файл будет скопирован в изображение контейнера (с использованием инструкции COPY), его изменение с хоста не будет иметь никакого эффекта - это другой файл.

Вы попытались перезаписать файл путем связывания установки тома с хоста с использованием аргумента -v до docker run. Это сработает - теперь вы будете использовать тот же файл на хосте и контейнере, за исключением того, что вы сделали опечатку - это должно быть /usr не /user.

+0

Думаю, мне даже не нужна команда COPY. Спасибо! как я могу пометить ваш ответ как правильный? – user3538553

+0

Нет, вам не нужна команда COPY, если вы используете тома. Но это позволяет вам распространять рабочую версию вашего изображения - вы можете использовать тома во время разработки, а затем перестраивать образ, чтобы отправить его с обновленным кодом. Должен быть знак галочки рядом с моим ответом, который вы можете нажать, чтобы принять, IIRC. –

+0

Я вижу 'share' и 'edit' внизу, но это все. возможно, у меня недостаточно очков. – user3538553

0

Просто измените файл sendfile в файле nginx.conf, можете работать.

Смежные вопросы