#docker #dockerfile #varnish
Вопрос:
Здесь по умолчанию.vcl
vcl 4.1;
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Мой docker-composer.yml
version: "3"
services:
varnish:
image: varnish:stable
container_name: varnish
volumes:
- "./default.vcl:/etc/varnish/default.vcl"
ports:
- "80:80"
tmpfs:
- /var/lib/varnish:exec
environment:
- VARNISH_SIZE=2G
depends_on:
- "node"
node:
build: ./
container_name: node
ports:
- "8080:8000"
Мой Dockerfile
FROM node:10-alpine
RUN mkdir -p /home/node/app/node_modules amp;amp; chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN npm install
COPY --chown=node:node . .
EXPOSE 8080
CMD [ "node", "app.js" ]
Когда я запускаю приложение через http://localhost:8080 / это работает, и когда я запускаю его непосредственно в порту 80, вот так http://localhost / он бросает
Ошибка 503 Ошибка внутренней выборки
Я что-то упускаю при настройке порта? Или как я могу проверить журнал varnish через docker?
Комментарии:
1. Вы указали кешу Varnish на прокси-сервер (
localhost
); вероятно, вам нужно использовать имя службы Compose другого контейнераnode
в качестве имени хоста. Сеть в Compose в документации Docker описывает имена хостов и другие доступные вам настройки.2. @DavidMaze Спасибо, что изменили 127.0.0.1 на node, который работает в
default.vcl
файле