Наряду с контейнерами Docker, на которых выполняются мои микро-сервисы, написанные в go
(один контейнер на микро-сервис), мне нужно создать контейнер Docker, который запускает сервис Service Registry
, предоставляемый сторонней платформой (контроль Koding).).
Сказав это, мне нужно создать отдельный контейнер, который запускает это стороннее приложение go
, выполнив следующие команды.
Получить приложение:
go get github.com/koding/kite/kontrol/kontrol
Создание пары ключей RSA:
openssl genrsa -out key.pem 2048
openssl rsa -in key.pem -pubout > key_pub.pem
Установите некоторые переменные окружения:
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"
Инициализируйте Registry Service
:
./bin/kontrol -initial
Запустите 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'