Как докеризировать стороннее приложение go - PullRequest
0 голосов
/ 26 мая 2018

Наряду с контейнерами Docker, на которых выполняются мои микро-сервисы, написанные в go (один контейнер на микро-сервис), мне нужно создать контейнер Docker, который запускает сервис Service Registry, предоставляемый сторонней платформой (контроль Koding).).

Сказав это, мне нужно создать отдельный контейнер, который запускает это стороннее приложение go, выполнив следующие команды.

  1. Получить приложение:

    go get github.com/koding/kite/kontrol/kontrol

  2. Создание пары ключей RSA:

    openssl genrsa -out key.pem 2048 openssl rsa -in key.pem -pubout > key_pub.pem

  3. Установите некоторые переменные окружения:

    KONTROL_PORT=6000 KONTROL_USERNAME="kontrol" KONTROL_STORAGE="etcd" KONTROL_KONTROLURL="http://127.0.0.1:6000/kite" KONTROL_PUBLICKEYFILE="certs/key_pub.pem" KONTROL_PRIVATEKEYFILE="certs/key.pem"

  4. Инициализируйте Registry Service:

    ./bin/kontrol -initial

  5. Запустите Registry Service:

    ./bin/kontrol

Как включить эти шаги в мой проект?Например, у меня есть docker-composer.yaml файл, подобный этому:

version: '3.3'
services:
  api:
    container_name: 'api'
    build: './api'
    ports:
      - '8080:8080'
    volumes:
      - './api:/go/src/app'
    depends_on:
      - 'mongo'
  etcd0:
    container_name: 'etcd0'
    image: 'quay.io/coreos/etcd'
    command: >
      etcd -name etcd0
      -advertise-client-urls http://127.0.0.1:2379,http://127.0.0.1:4001
      -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001
      -initial-advertise-peer-urls http://127.0.0.1:2380
      -listen-peer-urls http://0.0.0.0:2380
      -initial-cluster-token etcd-cluster-1
      -initial-cluster etcd0=http://127.0.0.1:2380
      -initial-cluster-state new
  mongo:
    container_name: 'mongo'
    image: 'mongo:latest'
    ports:
      - '27017:27017'
    volumes:
      - '/var/lib/mongodb:/var/lib/mongodb'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...