Как запустить мое локальное докеризированное приложение AWS EC2? - PullRequest
0 голосов
/ 23 октября 2019
  • Я внедрил докеризованное приложение на своем локальном компьютере и хочу развернуть его в AWS.
  • Я выбрал EC2 для основного приложения докера, RDS для базы данных и ECRдля передачи моих локальных образов докера в мой экземпляр EC2.

На моем локальном компьютере у меня есть этот файл для создания моих образов докера для разработки

docker-compose.yml:

version: '2'<br>
services:<br>
  nginx:<br>
    container_name: nginx-angular<br>
    image: nginx-angular
    build:
      context: ./frontend
      dockerfile: /.docker/nginx.dockerfile
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - web

  web:
    container_name: django-app
    build:
      context: ./backend
      dockerfile: /django.dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      PROD_ENV_FRONTEND_BASE_URL: http://192.168.99.100/
      MODE_ENV: PROD

  db:
    container_name: django-db
    image: postgres:10

Когда я собираю свое приложение (сборка docker-compose), создается 7 образов докера, когда я запускаю приложение (сборка docker-compose) 3работают контейнеры (по 1 для каждой службы в файле yml).

Q1
Я должен перейти к EC2 через ECR, только 3 изображениякоторые соответствуют работающим контейнерам или всем 7 изображениям?

Обратите внимание, что в EC2 я использую RDS вместо док-контейнера для своей базы данных.
Итак, здесьэто yml для создания образов докера, которые я отправлю в EC2:

docker-compose-aws.yml:

version: '2'
services:
  nginx:
    container_name: nginx-angular
    image: nginx-angular
    build:
      context: ./frontend
      dockerfile: /.docker/nginx.dockerfile
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - web

  web:
    container_name: django-app
    build:
      context: ./backend
      dockerfile: /django.dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    ports:
      - "8000:8000"
    environment:
      PROD_ENV_FRONTEND_BASE_URL: <wy_web_app_domain>
      MODE_ENV: PROD_AWS
      DB_USER: postgres_user
      DB_NAME: postgres_db
      DB_PASSWORD: <db_password>
      DB_HOST: <host_of_my_RDS_DB>

Q2
В любом случае, как запустить мое приложение в AWSEC2? Нужно ли мне создавать новый файл ".yml", в котором используются изображения, которые я уже передал в EC2 через ECR?

...