version: "3.7" services: jenkins: image: 'jenkins/jenkins:lts-alpine' restart: always ports: - '8080:8080' #- '50000:50000' environment: - TZ=Asia/Shanghai volumes: - jenkins-data:/var/jenkins_home java11-node1: image: 'gulucat/java-agent:jdk11' restart: always volumes: - /home/deploy/dist:/dist - maven_repository:/root/.m2 environment: - TZ=Asia/Shanghai volumes: jenkins-data: maven_repository:
/var/jenkins_home 中的所有内容即可。
vi agent_jdk11.dockerfile
FROM maven:3-jdk-11
RUN sed -i "s@http://deb.debian.org@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list \
&& sed -i "s@http://security.debian.org@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
ssh \
curl \
vim-tiny \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir /run/sshd
RUN echo "export PATH=/usr/local/openjdk-11/bin:\$PATH" >> /root/.bashrc \
&& echo "export JAVA_HOME=/usr/local/openjdk-11" >> /root/.bashrc \
&& mkdir -p /home/jenkins \
&& mkdir /root/.ssh
# jenkins 里创建一对密钥,把公钥提出来,放到节点镜像中,实现免密控制。
COPY ./certs/id_ed25519.pub /root/.ssh/authorized_keys
CMD ["/usr/sbin/sshd", "-D"]
docker build -f agent_jdk11.dockerfile -t gulucat/java-agent:jdk11 .