• 方法1:使用Jenkins构建Docker镜像 --SpringCloud


    前提意义:
    SpringCloud微服务里包含多个文件夹,拉取仓库的所有代码,然后过根据选项参数使用maven编译打包指定目录的jar,然后再根据这个目录的Dockerfile文件制作Docker镜像

    采用这种结构,代码不用做任何修改。

    大致步骤流程是:
    开发人员提交代码到Gogs仓库,触发webhooks钩子,然后Jenkins自动执行任务( 这一步可以删除钩子,手动进行操作),从整个Gogs仓库拉取代码,但是只编译打包其中的一个文件夹项目,生成jar包,然后根据文件夹项目根目录下的Dockfile文件使用远程Docker(其实就是本机安装的docker)制作镜像。

    1. SpringCloud项目结构

    注意Dockerfile文件的位置,跟src和pom.xml同级,后面会用到这个文件,若不同级,后面选择Dockerfile文件的时候需要酌情修改,就是使用环境变量的那几个地方

    Dockerfile文件内容

    FROM java:8
    MAINTAINER sandu <1103324414@qq.com>
    VOLUME /tmp
    ADD target/spring-cloud-eureka-server-demo-1.0-SNAPSHOT.jar /eureka-server-demo.jar
    ENTRYPOINT ["java","-Xmx200m","-Xms200m","-Djava.security.egd=file:/dev/./urandom","-jar","/eureka-server-demo.jar"]
    EXPOSE 9011
    
    

    Git仓库是整个项目,但是根据选项参数只编译打包spring-cloud-eureka-server-demo文件夹

    2. Docker配置

    开启远程访问:

    vim /lib/systemd/system/docker.service
    # 添加下面这行
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
    
    systemctl daemon-reload
    systemctl restart docker 
    

    配置国内163源:

    vim /etc/docker/daemon.json
    {
       "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    
    

    3. Jenkins配置

    安装docker插件
    系统管理---系统设置---云,添加docker配置信息,具体如下图:

    4. 工程中的设置

    构建,一定要选择生成jar包之后的操作,详看截图:

    5. 查看生成的docker镜像并运行

    
    [root@bogon ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    eureka-server       latest              846ceb0bc1fc        57 seconds ago      686MB
    java                8                   d23bdf5b1b1b        2 years ago         643MB
    
    [root@bogon ~]# docker run -p 9011:9011 -d  eureka-server:latest
    0b2e245e29149787b79681c17b36ea6f4c45ba69bdcb580dca6a8f83282ef2e5
    
    [root@bogon ~]# docker ps
    CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
    0b2e245e2914        eureka-server:latest   "java -Xmx200m -Xms2…"   6 seconds ago       Up 4 seconds        0.0.0.0:9011->9011/tcp   mystifying_driscoll
    
    

    6. 验证

    使用浏览器访问: http://本机ip:9011

  • 相关阅读:
    有用学习网址
    Pivot运算符用于在列和行之间
    st_MES_InsertIntoSalaryManage
    I00033 消除游戏
    I00033 消除游戏
    PHP版本的Graphviz样例之集群流程图
    PHP版本的Graphviz样例之集群流程图
    Graphviz样例之集群流程图
    Graphviz样例之集群流程图
    Graphviz样例之UML图
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/11797660.html
Copyright © 2020-2023  润新知