在docker中如何设置jenkins的 dontkillme
时间: 2024-04-05 07:33:31 浏览: 87
在Docker中设置Jenkins的`dontkillme`选项,可以通过修改Dockerfile或者Docker Compose文件来实现。下面是两种方法:
方法一:修改Dockerfile
1. 打开Jenkins的Dockerfile(一般位于`jenkins/jenkins`仓库)。
2. 在Dockerfile中找到`ENTRYPOINT`或者`CMD`行。
3. 在该行之前添加以下内容:
```
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false -Djava.awt.headless=true -Dhudson.DNSMultiCast.disabled=true -Djenkins.slaves.NodeProvisioner.initialDelay=0 -Djenkins.slaves.NodeProvisioner.MARGIN=50 -Djenkins.slaves.NodeProvisioner.MARGIN0=0.85 -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dhudson.model.ParametersAction.safeParameters=true -Djenkins.model.Jenkins.dontKillMe=true"
```
这里的`-Djenkins.model.Jenkins.dontKillMe=true`是为了设置Jenkins不被Docker容器杀掉。
4. 构建和运行Jenkins容器。
方法二:修改Docker Compose文件
如果你使用Docker Compose来管理Jenkins容器,可以按照以下步骤进行修改:
1. 打开Docker Compose文件。
2. 在Jenkins服务的`environment`部分中添加以下内容:
```
- JAVA_OPTS=-Djenkins.install.runSetupWizard=false -Djava.awt.headless=true -Dhudson.DNSMultiCast.disabled=true -Djenkins.slaves.NodeProvisioner.initialDelay=0 -Djenkins.slaves.NodeProvisioner.MARGIN=50 -Djenkins.slaves.NodeProvisioner.MARGIN0=0.85 -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dhudson.model.ParametersAction.safeParameters=true -Djenkins.model.Jenkins.dontKillMe=true
```
这里的`-Djenkins.model.Jenkins.dontKillMe=true`是为了设置Jenkins不被Docker容器杀掉。
3. 重新启动Docker容器。
以上两种方法可以帮助你在Docker中设置Jenkins的`dontkillme`选项,确保Jenkins能够在容器中持续运行。
阅读全文