Каков наилучший способ развертывания контейнеров из конвейера для управления traefik 2? - PullRequest
1 голос
/ 04 марта 2020

Мне действительно трудно найти лучший способ развертывания "запроектированного" проекта на моем сервере. Вот описание моей проблемы:

Что у меня есть:

  1. AWS EC2-сервер
  2. Traefik V2 для управления и маршрутизации моего контейнеры с https (с DNS-сервером Route53)
  3. Travis CI
  4. Github
  5. Docker Hub

Вот что я пытаюсь do:

enter image description here

Я должен установить метки traefik в Dockerfile, чтобы файл docker-Compose использовал этот Dockerfile для построения образа (если набор метки в docker -compose и pu sh в реестр не отображаются). Я не думаю, что это действительно хороший дизайн, вероятно, есть лучший способ решить эту проблему.

Я хочу знать, что если у кого-то есть лучшее решение для этого!

Вот docker -компонент для моего traefik (после конфигурации учебника):

version: '3'
services:
  traefik:
    image: traefik:2.1
    container_name: traefik2
    restart: unless-stopped
    networks:
      - proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /opt/traefik/traefik.yml:/traefik.yml
      - /opt/traefik/acme.json:/acme.json
    environment:
      # variable for dns server...
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.entrypoints=http"
      - "traefik.http.routers.traefik.rule=Host(`domain.info`)"
      - "traefik.http.middlewares.traefik-auth.basicauth.users=user:asdasdasdas"
      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=https"
      - "traefik.http.routers.traefik-secure.rule=Host(`domain.info`)"
      - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
      - "traefik.http.routers.traefik-secure.tls=true"
      - "traefik.http.routers.traefik-secure.tls.certresolver=mgcresolver"
      - "traefik.http.routers.traefik-secure.service=api@internal"

networks:
  proxy:
    external: true

Вот реактивный проект, который я хочу использовать с этой конфигурацией, Dockerfile и docker -составить, что я использую:

https://github.com/wallysoncarvalho/portfolio-react

1 Ответ

1 голос
/ 04 марта 2020

Лучшее решение - использовать AWS ECS вместо запуска Docker контейнеров непосредственно на экземпляре EC2. ECS - это AWS управляемая Docker служба, которая может работать в инфраструктуре EC2 или Fargate. Обычно рекомендуется использовать существующую облачную службу, когда она доступна, а не реализовывать традиционную локальную альтернативу.

Вот как будет выглядеть простой рабочий процесс сборки / выпуска:

enter image description here

Кроме того, я бы также предложил рассмотреть размещение Docker изображения в AWS ECR вместо DockerHub, этот сервис хорошо интегрируется с ECS.

...