docker - 如何对接第三方 Go 应用程序
问题描述
除了运行我编写的微服务的 Docker 容器go
(每个微服务一个容器)之外,我还需要创建一个 Docker 容器来运行Service Registry
第三方框架(Koding 的 kontrol)提供的服务。
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'
解决方案
推荐阅读
- c# - 票据上热敏打印机顶部的空白区域
- javascript - 如何在 React 中正确实现嵌套的动态表单
- python - 键盘记录器卡在循环中
- ios - Swift MeasurementFormatter 错误地将距离转换为英里
- ms-access - 从 MS Access 中的表编译计数时遇到问题
- c - float、double 和 long double 之间没有区别吗?
- javascript - 如何从模拟模块模拟多个值?
- php - 我有一个可以提交的表单,但是当我添加文件上传功能时它不起作用
- java - Spring Data/JPA:如何保存具有多个子集合的项目?
- java - 我有一个休眠问题。启动我的应用程序时速度很慢,使用休眠启动第一个 sessionFactory 需要 2 分钟