Получение интерфейса Ember и Flask для связи через отдельные контейнеры Docker - PullRequest
0 голосов
/ 30 ноября 2018

Я докеризовал серверное веб-приложение, созданное с помощью Flask.CMD строка Dockerfile запускает python app.py, который внутренне вызывает app.run(host='0.0.0.0'), так что приложение работает (в контейнере Docker) на 0.0.0.0:5000.Затем я запускаю встроенный контейнер с

$ docker run -p 5000:5000 -it my-image:latest

. Внешний интерфейс строится с тлеющим углем.В файле .ember-cli для proxy установлено значение http://localhost:5000.Когда я запускаю $ ember serve локально, приложение работает гладко на localhost:4200, связываясь с бэкэндом, запущенным из образа докера.Тем не менее, я также хочу запустить интерфейс на образе докера (на основе образа Apache).Мой Dockerfile:

FROM httpd:2.4-alpine
COPY ./dist/ /usr/local/apache2/htdocs/
COPY ./.htaccess /usr/local/apache2/htdocs/

Файл .htaccess копируется непосредственно из Ember - Развертывание (согласно разделу Servers):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.html [L]
</IfModule>

Iзатем выполните следующее:

$ ember b --prod  # build the app for production (stored in ./dist/)
$ docker build -t my-frontend:latest .
$ docker run -dit --name my-frontend -p 8080:80 my-frontend:latest

Затем я перехожу на localhost:8080 и вижу колесо загрузки моего приложения, что означает, что это изображение работает изолированно.Тем не менее, я продолжаю получать 404 ошибки, когда он пытается получить доступ к бэкэнду.

Что я делаю неправильно, что контейнеры не могут связываться друг с другом?

...