【发布时间】:2020-04-28 15:59:04
【问题描述】:
我正在尝试在 Kubernetes 中运行 Jenkins,但 Jenkins 的版本已过时。它说我需要至少 2.138.4 版本的 Kubernetes 插件。
我正在使用来自 Docker hub 的 this jenkins 映像(“jenkins/jenkins:lts”)。但是当我尝试在 Kubernetes 中运行它时,它说版本是 2.60.3。我之前使用了一个非常旧版本的 Jenkins (2.60.3),但我更新了我的 Dockerfile 以使用最新的图像。之后,我再次构建映像并将其扔给 Kubernetes。我什至在再次部署之前删除了我的 Kubernetes 部署和服务。 我目前正在使用 Minikube 的开发环境中工作。
Dockerfile:
FROM jenkins/jenkins:lts
ENV JENKINS_USER admin
ENV JENKINS_PASS admin
# Skip initial setup
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt
USER root
RUN apt-get update \
&& apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
RUN apt-get update -qq \
&& apt-get install docker-ce -y
RUN usermod -aG docker jenkins
RUN apt-get clean
RUN curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
USER jenkins
Kubernetes 部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: mikemanders/my-jenkins-image:1.0
env:
- name: JAVA_OPTS
value: -Djenkins.install.runSetupWizard=false
ports:
- name: http-port
containerPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins-home
mountPath: /var/jenkins_home
volumes:
- name: jenkins-home
emptyDir: {}
还有 Kubernetes 服务:
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
selector:
app: jenkins
ports:
- port: 8080
targetPort: 8080
我认为我的 Kubernetes 配置不错,所以我猜它与 Docker 有关系?
我在这里遗漏了什么/做错了什么?
【问题讨论】:
标签: docker jenkins kubernetes dockerfile jenkins-plugins