栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

docker版jenkins部署服务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker版jenkins部署服务

  1. 1拉取镜像

docker pull jenkins/jenkins:2.319.1-lts

  1. 2.运行启动

创建jenkins网络 (bridge)
docker network create jenkins
启动docker

   docker run  --name jenkins -d --privileged=true --network jenkins --network-alias jenkins --env DOCKER_TLS_CERTDIR=/certs  --volume /jenkins-docker-certs:/certs/client --volume /jenkins-data:/var/jenkins_home  -p 2376:2376 -p 8080:8080 -p 50000:50000 jenkins/jenkins:2.319.1-lts

出现报错::touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

 chown -R 1000:1000 /jenkins-data  
    或者启动要加  -u root

. 使用docker-compose

yaml
version: ‘3.1’

services:
  jenkins:
    image: jenkins/jenkins:2.319.1-lts
    container_name: jenkins
    privileged: true
    user: root
    networks:
      jenkins:
        aliases:
          - jenkins
    environment:
      - DOCKER_TLS_CERTDIR=/certs
    volumes:
      - ./jenkins-docker-certs:/certs/client
      - ./jenkins-data:/var/jenkins_home
    ports:
      - "2376:2376"
      - "8080:8080"
      - "50000:50000"
networks:
  jenkins:
    external: true

启动 docker-compose up -d
中文和英文版对比

jenkins-node搭建

用于执行jenkinsjob任务的节点,由于Jenkins本身不推荐在master节点上面执行job任务,固在本服务器上跑个docker 容器用于执行Jenkins的job,容器需要包含ssh maven git java等常用插件
ssh,java准备工作
到oracle下载Java jdk
生成sshkey

ssh-keygen -t rsa

编写ssh启动脚本(docker容器用)
#!/bin/bash

/usr/sbin/sshd -D

Dockerfile

RUN apt-get update && 
    apt-get install openssh-server net-tools -y
RUN apt-get install git -y
RUN apt-get install maven -y
RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh
RUN sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd
RUN sed -ri 's/#PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
# 加入sshkey
ADD authorized_keys /root/.ssh/authorized_keys
# 加入脚本
ADD run.sh /run.sh
# 加入jdk
ADD jdk-8u311-linux-x64.tar.gz ./
RUN chmod 755 /run.sh
CMD ["/run.sh"]

docker-compose.yml

services:
  ubuntu:
    image: ubuntu:18.04_ssh-java-git-maven
    container_name: ubuntu_node
    ports:
      - "8083:22"
    networks:
      jenkins:
        aliases:
          - ubuntu_node
    deploy:
      resources:
        limits:
          memory: 5000M
        reservations:
          memory: 500M
    logging:
      driver: json-file
      options:
        max-size: "20M"
        max-file: "5"
networks:
  jenkins:
    external: true

启动 docker-compose up -d

jenkins配置


JAVA_TOOL_OPTIONS
-Dfile.encoding=UTF8
LANG
en_US.UTF-8
凭据



clean package -U -Dmaven.test.skip=true

#!/bin/bash
image_name="xmninsharbor01t.fubon.com.cn/devop/service-prpall-policy:0.0.1"
container_name="service-prpall-policy"

# 查找容器id
echo "${container_name}"
old_container_id=$(docker ps -a | grep ${container_name} | awk '{print$1}' )
old_image_id=$(docker ps -a | grep ${container_name} | awk '{print$2}' )

if [ -n "$old_container_id" ]; then
    echo "delete old container and image ${container_name}"
    docker stop ${old_container_id}
    docker rm ${old_container_id}
    docker rmi ${old_image_id}
fi

echo "pull image ${image_name}"
docker pull ${image_name}
docker run --net=host -d -m 4096M --memory-swap -1 --log-opt mode=non-blocking --log-opt max-buffer-size=4m -e spring.profiles.active=uat -v /var/log:/log  --name ${container_name} ${image_name}
echo "done"

docker api 配置在这里 ,前提是 docker 要开启远程功能

最后运行微服务的SSH remote hosts 的配置

系统管理->系统配置

节点管理的ssh配置


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/671457.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号