docker swarm安装jenkins

docker swarm安装与配置jenkins

安装jenkins

1.创建jenkins本地目标

mkdir -p /usr/local/jenkins
chmod -R 777 /usr/local/jenkins

2.创建docker swarm配置文件

jenkins绑定宿主机java、maven

version: "3.6"
services:
  jenkins:
    image: jenkins/jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - /usr/local/apache-maven-3.5.3:/usr/local/apache-maven-3.5.3
      - /usr/local/jdk1.8.0_171:/usr/local/jdk1.8.0_171
      - /usr/local/jenkins:/var/jenkins_home
      - /etc/localtime:/etc/localtime
      - /etc/docker:/etc/docker
    networks:
      - platform
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]
networks:
  platform:
    external: true

3.部署jenkins

docker stack deploy -c docker-jenkins.yml jenkins

4.登录jenkins

浏览器访问:http://宿主机:8080,密码文件位置/var/jenkins_home/secrets/initialAdminPassword

查看docker 容器 id
docker ps 
1d843e64ae41 jenkins/jenkins:latest jenkins_jenkins.1.ow18l7i39zwhriossu5gibfq9
查询密码文件内容
docker exec -it 1d843e64ae41 cat /var/jenkins_home/secrets/initialAdminPassword
密码
f164a3a0f5134def9f7c4cdb6b453d01

输入密码登录jenkins

jenkins配置

1.选择安装推荐的插件

docker swarm安装jenkins_第1张图片
等待插件安装完成

2. 设置管理员密码

docker swarm安装jenkins_第2张图片

3.全局工具设置

Manage Jenkins->Global Tool Configuration
新增jdk,取消勾选自定安装,配置jdk的路径
docker swarm安装jenkins_第3张图片配置maven
docker swarm安装jenkins_第4张图片配置docker
docker swarm安装jenkins_第5张图片Manage Jenkins->Manage Plugins
安装CloudBees Docker Build and Publish
docker swarm安装jenkins_第6张图片安装Publish Over SSH插件
docker swarm安装jenkins_第7张图片

4.配置Docker TCP远程连接

编辑docker的宿主机文件/lib/systemd/system/docker.service

vi /lib/systemd/system/docker.service

修改以ExecStart开头的行,修改为下面内容

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

修改后保存文件,然后通知docker服务做出的修改

systemctl daemon-reload

重启docker服务

service docker restart

接下来测试一下看是否能连接到docker api

 curl http://localhost:2375/version

5.新增docker云

Manage Jenkins->Configure System–>云
docker swarm安装jenkins_第8张图片

Jenkins 项目配置

分布式部署apollo,将apollo注册到统一eureka上,参考apollo分布式部署指南
eureka application.yml

server:
    port: 9998
spring:
    application:
        name: eureka-server
    profiles:
        active: ${EUREKA_NAME}

eureka:
    client:
        fetchRegistry: true
        registerWithEureka: true
        registryFetchIntervalSeconds: 30
        serviceUrl:
            defaultZone: ${EUREKA_SERVER_LIST}
    instance:
        health-check-url-path: /actuator/health
        hostname: ${EUREKA_NAME}
        instanceId: ${spring.cloud.client.ip-address}:${server.port}
        preferIpAddress: false

eureka docker swarm配置

version: "3.6"
services:
  eureka1:
    image: 192.168.8.98:5000/eureka:2.0
    ports:
      - 9997:9998
    environment: 
      - EUREKA_SERVER_LIST=http://eureka2:9998/eureka/
      - EUREKA_NAME=eureka1
    extra_hosts:
      - "eureka1:192.168.8.88"
      - "eureka2:192.168.8.98"
    networks: 
      platform:
        aliases:
          - eureka  
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.host == ljh1]     
      
  eureka2:
    image: 192.168.8.98:5000/eureka:2.0
    ports:
      - 9998:9998
    environment: 
      - EUREKA_SERVER_LIST=http://eureka1:9997/eureka/
      - EUREKA_NAME=eureka2
    extra_hosts:
      - "eureka1:192.168.8.88"
      - "eureka2:192.168.8.98"
    networks: 
      platform:
        aliases:
          - eureka  
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.host == ljh2]  

networks:
  platform:
    external: true

修改ApolloConfigDB 数据库 ServerConfig 表
将 eureka.service.url 改为 http://eureka1:9997/eureka/,http://eureka2:9998/eureka/

1.创建项目

点击新建Item,选择Freestyle project
docker swarm安装jenkins_第9张图片

2.配置源码仓库

docker swarm安装jenkins_第10张图片点击->添加构建步骤->执行shell
docker swarm安装jenkins_第11张图片
点击->添加构建步骤->Build/Publish Docker Image
docker swarm安装jenkins_第12张图片点击->添加构建步骤->Build/Publish Docker Image
docker swarm安装jenkins_第13张图片点击->添加构建步骤->Build/Publish Docker Image
docker swarm安装jenkins_第14张图片apollo docker swarm配置

version: "3.4"
services:
  apollo-configservice:
    image: 192.168.8.98:5000/apollo-configservice:1.4
    ports:
      - "7080:7080"
    networks:
      - platform
    volumes:
      - /opt/logs:/opt/logs
    extra_hosts:
      - "eureka1:192.168.8.88"
      - "eureka2:192.168.8.98"  
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.host == ljh2]
        
  apollo-adminservice:
    image: 192.168.8.98:5000/apollo-adminservice:1.4
    ports:
      - "7090:7090"
    networks:
      - platform
    volumes:
      - /opt/logs:/opt/logs
    extra_hosts:
      - "eureka1:192.168.8.88"
      - "eureka2:192.168.8.98"
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.host == ljh2]
    depends_on:
      - apollo-configservice
      
  apollo-portal:
    image: 192.168.8.98:5000/apollo-portal:1.4
    ports:
      - "7070:7070"
    networks:
      - platform   
    extra_hosts:
      - "eureka1:192.168.8.88"
      - "eureka2:192.168.8.98"  
    volumes:
      - /opt/logs:/opt/logs
    deploy:
      replicas: 1
      placement:
        constraints: [node.labels.host == ljh2]
    depends_on:
      - apollo-adminservice

networks:
  platform:
    external: true

你可能感兴趣的:(docker)