mirror of https://github.com/halo-dev/halo
Refactor Dockerfile with layered jar (#1248)
* Refactor Dockerfile with layered jar * Add projectVersion print task * Refactor docker build process * Remove aliyun maven mirror * Correct multi platforms list * Correct multi platforms list again * Make docker platforms configurablepull/1249/head
parent
30c9baf92b
commit
bcf26fdc50
|
@ -156,27 +156,39 @@ jobs:
|
||||||
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
|
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-dependencies-
|
${{ runner.os }}-dependencies-
|
||||||
|
- name: Get version of halo
|
||||||
|
id: get_halo_version
|
||||||
|
run: |
|
||||||
|
version=$(./gradlew -q projectVersion)
|
||||||
|
echo "Trying to build and publish halo:${version}"
|
||||||
|
echo "HALO_VERSION=${version}" >> $GITHUB_ENV
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1
|
uses: docker/setup-qemu-action@v1
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v1
|
uses: docker/setup-buildx-action@v1
|
||||||
- name: Build docker image
|
-
|
||||||
run: |
|
name: Login to DockerHub
|
||||||
docker info
|
uses: docker/login-action@v1
|
||||||
docker images
|
with:
|
||||||
export DOCKER_USERNAME=${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
export DOCKER_TOKEN=${{ secrets.DOCKER_TOKEN }}
|
password: ${{ secrets.DOCKER_TOKEN }}
|
||||||
export DOCKER_IMAGE_NAME=${{ secrets.DOCKER_IMAGE_NAME }}
|
-
|
||||||
export TAG_LATEST=false
|
name: Build and push with version tag
|
||||||
echo "Building and pushing with version tag."
|
uses: docker/build-push-action@v2
|
||||||
./gradlew bootBuildImage -x bootJar --publishImage
|
with:
|
||||||
PRE_RELEASE=${{ github.event.release.prerelease }}
|
context: .
|
||||||
if ! $PRE_RELEASE
|
file: ./Dockerfile
|
||||||
then
|
platforms: ${{ secrets.DOCKER_PLATFORMS }}
|
||||||
echo "Building and pushing with latest tag."
|
push: true
|
||||||
export TAG_LATEST=true
|
tags: |
|
||||||
./gradlew bootBuildImage -x bootJar --publishImage
|
${{ secrets.DOCKER_IMAGE_NAME }}:${{ env.HALO_VERSION}}
|
||||||
else
|
- name: Build and push with latest tag
|
||||||
echo "Skipped building and pushing with latest tag due to pre-release."
|
uses: docker/build-push-action@v2
|
||||||
fi
|
if: "!github.event.release.prerelease"
|
||||||
docker images
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./Dockerfile
|
||||||
|
platforms: ${{ secrets.DOCKER_PLATFORMS }}
|
||||||
|
push: true
|
||||||
|
tags: |
|
||||||
|
${{ secrets.DOCKER_IMAGE_NAME }}:latest
|
||||||
|
|
31
Dockerfile
31
Dockerfile
|
@ -1,17 +1,26 @@
|
||||||
FROM adoptopenjdk/openjdk11-openj9
|
FROM adoptopenjdk:11-jre-hotspot as builder
|
||||||
VOLUME /tmp
|
WORKDIR application
|
||||||
|
|
||||||
ARG JAR_FILE=build/libs/*.jar
|
ARG JAR_FILE=build/libs/*.jar
|
||||||
ARG TIME_ZONE=Asia/Shanghai
|
COPY ${JAR_FILE} application.jar
|
||||||
|
RUN java -Djarmode=layertools -jar application.jar extract
|
||||||
|
|
||||||
|
################################
|
||||||
|
|
||||||
|
FROM adoptopenjdk:11-jre-hotspot
|
||||||
|
MAINTAINER johnniang <johnniang@fastmail.com>
|
||||||
|
WORKDIR application
|
||||||
|
COPY --from=builder application/dependencies/ ./
|
||||||
|
COPY --from=builder application/spring-boot-loader/ ./
|
||||||
|
COPY --from=builder application/snapshot-dependencies/ ./
|
||||||
|
COPY --from=builder application/application/ ./
|
||||||
|
|
||||||
|
# JVM_XMS and JVM_XMX configs deprecated for removal in halov1.4.4
|
||||||
ENV JVM_XMS="256m" \
|
ENV JVM_XMS="256m" \
|
||||||
JVM_XMX="256m" \
|
JVM_XMX="256m" \
|
||||||
JVM_OPTS="" \
|
JVM_OPTS="-Xmx256m -Xms256m" \
|
||||||
TZ=${TIME_ZONE}
|
TZ=Asia/Shanghai
|
||||||
|
|
||||||
|
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime \
|
||||||
|
&& echo $TZ > /etc/timezone
|
||||||
|
|
||||||
COPY ${JAR_FILE} halo.jar
|
ENTRYPOINT java -Xms${JVM_XMS} -Xmx${JVM_XMX} ${JVM_OPTS} -Djava.security.egd=file:/dev/./urandom org.springframework.boot.loader.JarLauncher
|
||||||
|
|
||||||
EXPOSE 8090
|
|
||||||
|
|
||||||
ENTRYPOINT java -Xms${JVM_XMS} -Xmx${JVM_XMX} ${JVM_OPTS} -Djava.security.egd=file:/dev/./urandom -server -jar halo.jar
|
|
13
build.gradle
13
build.gradle
|
@ -22,9 +22,9 @@ checkstyle {
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
maven {
|
// maven {
|
||||||
url "https://maven.aliyun.com/nexus/content/groups/public"
|
// url "https://maven.aliyun.com/nexus/content/groups/public"
|
||||||
}
|
// }
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
|
@ -174,3 +174,10 @@ test {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
testLogging.showStandardStreams = true
|
testLogging.showStandardStreams = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task projectVersion {
|
||||||
|
description = 'Prints current project version.'
|
||||||
|
doLast {
|
||||||
|
println project.version
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue