常用构建脚本

镜像构建脚本

build-image-web.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash

if [ "${BUILD_DIR}" == "" ];then
echo "env 'BUILD_DIR' is not set"
exit 1
fi

DOCKER_DIR=${BUILD_DIR}/${JOB_NAME}

if [ ! -d ${DOCKER_DIR} ];then
mkdir -p ${DOCKER_DIR}
fi

echo "docker workspace: ${DOCKER_DIR}"

JENKINS_DIR=${WORKSPACE}/${MODULE}

echo "jenkins workspace: ${JENKINS_DIR}"

PROJECT_DIR=${JENKINS_DIR}${JOB_NAME}-web

echo "project workspace: ${PROJECT_DIR}"


if [ ! -f ${PROJECT_DIR}/target/*.jar ];then
echo "target jar file not found ${PROJECT_DIR}/target/*.jar"
exit 1
fi

cd ${DOCKER_DIR}
rm -fr *.jar Dockerfile

DOCKER_FILE=/opt/script/Dockerfile

cp ${PROJECT_DIR}/target/*.jar .
cp ${DOCKER_FILE} .

sed -i "s,{{JOB_NAME}},${JOB_NAME},g" Dockerfile

VERSION=$(date +%Y%m%d%H%M%S)

IMAGE_NAME=harbor.merchant.com/kubernetes/${JOB_NAME}:${VERSION}

echo "${IMAGE_NAME}" > ${WORKSPACE}/IMAGE

echo "building image: ${IMAGE_NAME}"
docker build -t ${IMAGE_NAME} .

docker push ${IMAGE_NAME}

helm list -n default
helm upgrade ${JOB_NAME} --set name=${JOB_NAME} --set version=$VERSION --set httpPorts=8080 -n default /opt/charts/

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FROM openjdk:11

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ENV TZ=Asia/Shanghai
ENV apollo.meta http://192.168.3.183:8080
ENV APOLLO_LABEL XianDevLabel
WORKDIR /

EXPOSE 8080

ADD {{JOB_NAME}}.jar /{{JOB_NAME}}.jar

CMD ["java","-Dapollo.label=XianDevLabel","-Djava.security.egd=file:/dev/./urandom","-jar","{{JOB_NAME}}.jar"]

标签