1. 安装jenkins
2. 在应用部署机器安装docker
3. 在jenkins所在机器ssh-keygen -rsa,然后把id_rsa.pub的内容copy至docker机器的authorized_keys末尾
4. 在ide里新建项目docker_demo,并share project至git,路径为
git@gitlab.xxx:wuhui.wwh/docker_demo.git
5. 配置jenkins
5.1 启动jenkins,并新建一个自由风格的应用:docker_demo
5.2 勾选:Build when a change is pushed to GitLab. GitLab CI Service URL: http://11.239.174.154:8080/jenkins/project/docker_demo
5.3 在gitlab的docker_demo--》settings--》Web Hooks--》URL为5.2的http://11.239.174.154:8080/jenkins/project/docker_demo
5.4 构建-->execute shell:
#!/bin/sh
#把代码scp至服务器相应的路径
scp -r ./* wuhui.wwh@11.239.174.154:/home/wuhui.wwh/docker/images/docker_demo/docker_demo
ssh 11.239.174.154
cd /home/wuhui.wwh/docker/images/docker_demo
echo "${password}"|sudo -S docker build -t i_docker_demo:v1.0 .
echo "${password}"|sudo -S run -it --name c_docker_demo i_docker_demo:v1.0 ./run.sh
6. 代码:
6.1 java代码App.java
package base;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args ) throws InterruptedException
{
while(true){
System.out.println("Hello world~");
Thread.currentThread().sleep(2000);
}
}
}
6.2 在/home/wuhui.wwh/docker/images/docker_demo目录下Dockerfile
FROM im_jdk_tomcat_mvn:v1.0
MAINTAINER wuhui.wwh <wuhui.wwh@xxx.com>
RUN mkdir -p /workdir/docker_demo
COPY ./docker_demo/ /workdir/docker_demo/docker_demo/
COPY ./startup.sh /workdir/docker_demo
COPY ./run.sh /workdir/docker_demo
#RUN source /etc/profile
#USER wuhui.wwh
WORKDIR /workdir/docker_demo
RUN chmod +x ./startup.sh
RUN chmod +x ./run.sh
ENV JAVA_HOME /opt/jdk1.8.0_121
ENV M2_HOME /opt/maven3.3.9
ENV MAVEN_HOME /opt/maven3.3.9
ENV PATH $PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
RUN echo `pwd`
WORKDIR docker_demo
RUN mvn clean package
WORKDIR ..
CMD "./run.sh"
6.3 在/home/wuhui.wwh/docker/images/docker_demo目录下run.sh
#!/bin/sh
java -cp docker_demo/target/docker_demo-1.0.jar base.App
7. run第一个docker_demo
7.1 jenkins构建docker_demo
7.2 提交代码
都会触发jenkins从git拉代码,docker 根据Dockerfile构建镜像,并最终启动一个c_docker_demo 的容器,同时执行App.java中的main方法