Я создал веб-приложение.Мое веб-приложение содержит интерфейс API, написанный на Python Flask, интерфейс написан на Angular, базу данных Mysql и nginx в качестве прокси.Все эти компоненты работают в контейнерах Docker, и я запускаю это с помощью команды docker-compose.Теперь я хочу опубликовать в AWS.Я не знаю, куда положить все эти контейнеры.Как создать архитектуру Должен ли я получить удовольствие от Flask и Angular в ECS EC2, базы данных Mysql в RDS и NGINX в экземпляре EC2.Я не знаю, как связать это все экземпляры.Потому что docker compose связывает эти контейнеры с другими контейнерами и определяет, какие контейнеры используют, какие тома.
Я пытался установить angular и flask на службу ECS, но я не знаю, куда поместить другие контейнеры.
Мой docker compose
version: '3.0'
services:
database:
image: mysqlb
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: "Restaurant"
MYSQL_ROOT_PASSWORD: "testtest12"
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./Sql/databaseSql/:/var/lib/mysql
- ./Sql/SqlScripts/:/docker-entrypoint-initdb.d/
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./docker-nginx/default.conf:/etc/nginx/conf.d/default.conf
links:
- angular:waiter_angular_1
- flask:waiter_flask_1
flask:
image: flask
ports:
- "5000:5000"
volumes:
- ./api/run.py:/app/run.py
- ./api/api:/app/api
links:
- database:waiter_database_1
angular:
image: angular
ports:
- "4200:4200"
volumes:
- ./docker-angular/:/usr/src/app/
- /usr/src/app/node_modules
links:
- flask:waiter_flask_1
Мой угловой dockerfile
FROM node:10.15
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
RUN npm audit fix --force
COPY . .
EXPOSE 4200
CMD npm run start
Мой докер-файл Flask
FROM ubuntu:16.04
RUN apt update -y
RUN apt upgrade -y
RUN apt install python3 -y
RUN apt install python3-pip -y
RUN export DEBIAN_FRONTEND=noninteractive
RUN apt install -y tzdata
RUN ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
RUN dpkg-reconfigure --frontend noninteractive tzdata
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
RUN pip3 install --upgrade pip
COPY ./run.py /app/run.py
COPY ./api /app/api
ENTRYPOINT ["python3"]
CMD ["run.py"]
Мой Mysql dockerfile
FROM mysql:latest
ENV MYSQL_DATABASE=Restaurant \
MYSQL_ROOT_PASSWORD=testtest12
ADD ./SqlScripts/Table.sql /docker-entrypoint-initdb.d
EXPOSE 3306
RUN useradd foo
RUN chown -R foo:foo /var/lib/mysql
USER foo
VOLUME /var/lib/mysql
Я ищунекоторые учебные пособия и советы, которые помогут мне начать публиковать приложение.