簡體   English   中英

如何為Jenkins配置dockerfile和docker-compose

[英]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-為詹金斯撰寫

泊塢窗,compose.yml

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM