[英]How to configure Dockerfile and docker-compose to deploy two containers to docker hub?
[英]How to configure a dockerfile and docker-compose for Jenkins
我在Docker和Jenkins中也絕對是新手。 我對Dockerfile和docker-compose.yml文件的配置有疑問。 我嘗試使用最簡單的配置來正確設置這些文件。 構建和推送正確完成,但是jenkins應用程序未在我的本地主機(127.0.0.1)上運行。
如果我正確理解,現在它應該默認在端口50000上運行(jenkins“官方” Dockerfile中的ARG agent_port = 50000)。 我也嘗試使用50000、8080和80,但沒有任何效果。 請問您有什么建議嗎? 我正在使用這些文件: https : //github.com/fdolsky321/Jenkins_Docker
第二個問題是,什么是處理容器崩潰的最佳方法。 可以說,如果容器崩潰,我想使用相同的設置重新創建一個新的容器。 最好的方法是僅創建一個新的外殼文件(如“ crash.sh”)並在那里提供我想要使用相同設置創建新容器的信息嗎? 在這里提到了類似的內容: https : //blog.codeship.com/ensuring-containers-are-always-running-with-dockers-restart-policy/
感謝您的任何建議。
docker-為詹金斯撰寫
version: '2'
services:
jenkins:
image: jenkins:latest
ports:
- 8080:8080
- 50000:50000
# uncomment for docker in docker
privileged: true
volumes:
# enable persistent volume (warning: make sure that the local jenkins_home folder is created)
- /var/wisestep/data/jenkins_home:/var/jenkins_home
# mount docker sock and binary for docker in docker (only works on linux)
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
根據需要在主機中替換端口8080、50000。
用相同的設置重新創建一個新的容器
大量安裝的jenkins_home,是您存儲所有作業和設置等的地方。
在創建每個作業或所需方式時,對已裝入的卷jenkins_home進行備份。 每當發生崩潰時,請使用相同的docker-compose文件運行Jenkins,並用備份替換jenkins_home文件夾。
重新運行/重新啟動詹金斯
列出容器
docker ps -a
重新啟動容器
docker restart <Required_Container_ID_To_Restart>
我一直在使用docker-compose.yml,如下所示:
version: '3.2'
volumes:
jenkins-home:
services:
jenkins:
image: jenkins-docker
build: .
restart: unless-stopped
ports:
- target: 8080
published: 8080
protocol: tcp
mode: host
volumes:
- jenkins-home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
container_name: jenkins-docker
我的映像是基於jenkins / jenkins:lts的本地構建的Jenkins映像,它添加了一些其他組件,如docker本身,並且我正在安裝docker套接字以允許我在docker主機上運行命令。 您的用例可能不需要這樣做。 對您來說重要的部分是要發布的端口(對我而言只有8080)和/ var / jenkins_home的卷,用於在映像更新之間保留Jenkins配置。
為了從錯誤中恢復,我已經restart: unless-stopped
在docker-compose.yml中restart: unless-stopped
,以將容器配置為自動重新啟動。 如果您以群體模式運行此程序,那將是自動的。
我通常避免定義容器名稱,但是在這種情況下,將永遠只有一個jenkins-docker容器,並且我希望能夠使用docker logs jenkins-docker
查看日志以收集諸如初始管理員登錄令牌之類的信息。
該鏡像的我的Dockerfile和其他依賴項可在以下位置獲得: https : //github.com/bmitch3020/jenkins-docker
HyperV與適用於Windows的docker。
在這種情況下,必須確保將所有已發布的端口(例如5000)進行端口轉發。
打開HyperV管理器,然后右鍵單擊在此定義的計算機:您將能夠添加端口轉發規則,以便localhost:5000訪問您的VM:5000。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.