跳到主要内容

simple

maven使用dockerfile插件构建项目

Jenkins配置

  • 创建maven项目
  • Build[Goals and options -> clean install -Dmaven.test.skip=true]
  • Post Steps[Run only if build succeeds]
  • add post-build step[Send files or execute commands over SSH]

cd $DOCKER_WORKSPACE/$JOB_NAME

export app_version='1.0'

# 编辑Dockerfile文件
tee Dockerfile <<-'EOF'

FROM hub.c.163.com/dwyane/openjdk:8
WORKDIR /workdir
ADD target/$JOB_NAME.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
EXPOSE 8080

EOF

# 构建镜像
docker build -t $JOB_NAME:$app_version .

# 上传镜像到私服
docker tag $JOB_NAME:$app_version registry.docker.com:5000/$JOB_NAME:$app_version
docker push registry.docker.com:5000/$JOB_NAME:$app_version

# 编辑stack yml文件
tee $JOB_NAME.yml <<-'EOF'
version: '3.5'
services:
  $JOB_NAME:
    image: registry.docker.com:5000/$JOB_NAME:${app_version}
    ports:
      - target: 8880
        published: 8880
        mode: host
    networks:
      - middleware
    deploy:
      replicas: 1
      update_config:
        parallelism: 1
      restart_policy:
        condition: on-failure

networks:
  middleware:
    external: true

EOF

# 启动app容器 
docker stack up -c $JOB_NAME.yml app