- システムアドミニストレーション->グローバル属性 -> 環境変数 -> 新しいキーを追加します。
- JENKINS_WORKSPACE : /var/lib/docker/volumes/soft_jenkin_home/_data/workspace
cd /var/lib/docker/volumes/soft_jenkins_home/_data && mkdir -p ./soft/jdks
wget https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.tar.gz
wget https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.tar.gz
tar -zxvf amazon-corretto-8-x64-linux-jdk.tar.gz
cd /var/lib/docker/volumes/soft_jenkins_home/_data && mkdir -p ./soft/maven
code settings.xml
- maven ビルド
- ビルド -> ステップの追加-> 最上部maven のターゲットの作成
clean install -Dmaven.test.skip=true -Pprivate -Djava.awt.headless=true
clean package -D maven.test.skip=true -P prod help:active-profiles
- シェルを実行します
- ミラーリングがプライベートにアップロードされました
export app_version=${BUILD_NUMBER}
cd $WORKSPACE
tee Dockerfile <<-'EOF'
FROM openjdk:11-jre-slim
WORKDIR /workdir
ADD ./target/*.jar app.jar
ENV SPRING_PROFILES_ACTIVE=prod
ENV SERVER_PORT=8080
ENTRYPOINT java -jar -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE -Dserver.port=$SERVER_PORT app.jar
EXPOSE 8080
EOF
echo <password> | docker login -u <username> --password-stdin registry.cn-zhangjiakou.aliyuncs.com
docker -H tcp://172.17.0.1:2375 build -t $JOB_NAME:$app_version .
docker -H tcp://172.17.0.1:2375 tag $JOB_NAME:$app_version registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_version
docker -H tcp://172.17.0.1:2375 push registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_version
docker -H tcp://172.17.0.1:2375 rmi registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_version
docker logout
- send build artifacts over SSH (Transfers Set -> Exec command)
- リモートサーバー選択、リモートサーバでdockerコンテナを起動する
- あるいは、リモートアクセスの dockerへのデプロイも行います。
- PS: 服务器docker需要开启远程访问(通过这种方式验证:docker -H tcp://172.17.0.1:2375 version)。
- 参考文章
export app_version=${BUILD_NUMBER}
mkdir -p /www/temp/jenkins/docker
cd /www/temp/jenkins/docker
tee $JOB_NAME.yml <<-'EOF'
version: '3.5'
services:
$JOB_NAME:
image: registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:${app_version}
environment:
TZ: "Asia/Shanghai"
networks:
- middleware
deploy:
replicas: 1
update_config:
parallelism: 1
restart_policy:
condition: on-failure
networks:
middleware:
external: true
EOF
docker -H tcp://172.17.0.1:2375 stack up -c $JOB_NAME.yml app --with-registry-auth