У меня есть приложение с 4 сервисами. Одним из них является Nginx, который будет действовать как прокси. Я использую docker compose для запуска сервисов. В nginx, когда я указываю путь и где прокси, я хочу иметь возможность использовать имя службы. Это то, что я сделал до сих пор.
version: '3'
services:
go_app:
image: go_app
depends_on:
- mysql
ports:
- "8000:8000"
mysql:
image: mysql_db
ports:
- "3306:3306"
flask_app:
image: flask_app
ports:
- "8080:8080"
nginx:
image: nginx_app
ports:
- "80:80"
depends_on:
- mysql
- flask_app
- go_app
С помощью вышеизложенного я создаю все сервисы. Все они работают на своих соответствующих портах. Я хочу, чтобы Nginx прослушивал порт 80 и прокси, как определено в конфигурации:
server {
listen 0.0.0.0:80;
server_name localhost;
location / {
proxy_pass http://${FLASK_APP}:8080/;
}
}
Вы можете спросить, откуда взялся FLASK_APP. Я указываю это внутри образа докера nginx:
FROM nginx
ENV FLASK_APP=flask_app
RUN rm /etc/nginx/conf.d/default.conf
COPY config/default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Контейнер Nginx продолжает сбой со следующей ошибкой:
[emerg] 1#1: unknown "flask_app" variable
nginx: [emerg] unknown "flask_app" variable
Как я понимаю, составление докера, flask_app
должно разрешиться как flask_appоказание услуг. Что я делаю неправильно / недоразумение?