我們現在有一個與GoCD類似的設置,其中GoCD代理在Docker容器中運行,並且必須在成功的管道上構建圖像。
TL;博士仍然是一個哈克的方式,但是這是最好的選擇運行得:從容器使用TCP連接到主機泊塢窗其中運行詹金斯。 @Raphayol提到,請注意安全含義。
下面是我們的嘗試:
1)內的碼頭工人
不是一個好主意潤泊塢窗。導致IO子系統吠叫並重新啓動的各種懸掛情況是必要的。
2)羣建設
羣簇或任何其他搬運工集羣是指運行容器不建立他們。舊的容器被推回最新版本,因爲構建和推送不能保證在同一個節點上執行。
3)專用構建主機
雖然這個作品拍工作節點和自動縮放的目的變得棘手。
4)安裝搬運工插座
排序的作品,但在重負載它會產生隨機IO鎖定並重新啓動碼頭工人守護進程是必要
5)連接回通過TCP
此選項幾個月現在,儘管如果你的詹金斯構建的服務器很好地隔離了,這不是一個明確的解決方案,但你可以忍受這一點。
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3630d84909e registry.backbase.com/gocd-agent "/sbin/my_init" 2 minutes ago Up 2 minutes 0.0.0.0:9040-9045->9040-9045/tcp docker_agent_1
[[email protected] ~]# docker exec -it e3 env|grep DOCKER
DOCKER_TLS_VERIFY=yes
DOCKER_HOST=tcp://10.10.10.10:2376
DOCKER_CERT_PATH=/var/go/docker-certs
https://hub.docker.com/r/axltxl/jenkins-dood/ – user2363318