mirror of
https://github.com/gotson/komga.git
synced 2025-12-06 08:32:25 +01:00
feat: docker multi-arch images
This commit is contained in:
parent
a7a96145c0
commit
d54c67b3df
9 changed files with 57 additions and 18 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
os: linux
|
||||||
language: java
|
language: java
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
|
|
||||||
./gradlew dockerPushLatest dockerPushSemVer
|
|
||||||
2
.travis/docker-common.sh
Normal file
2
.travis/docker-common.sh
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||||||
|
PLATFORMS=linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
|
||||||
25
.travis/prepare-dockerhub.sh
Executable file
25
.travis/prepare-dockerhub.sh
Executable file
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
source "$(dirname "$0")/docker-common.sh"
|
||||||
|
|
||||||
|
# Update Docker CE
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||||||
|
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
||||||
|
|
||||||
|
# Enable buildx
|
||||||
|
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
|
docker buildx create --name mybuilder --driver docker-container --use
|
||||||
|
docker buildx inspect --bootstrap
|
||||||
|
|
||||||
|
# Unpack fat jar
|
||||||
|
./gradlew unpack
|
||||||
|
|
||||||
|
# Build docker images (no push)
|
||||||
|
cd komga
|
||||||
|
docker buildx build \
|
||||||
|
--platform $PLATFORMS \
|
||||||
|
--cache-from gotson/komga:latest \
|
||||||
|
--tag gotson/komga:latest \
|
||||||
|
--tag gotson/komga:$1 \
|
||||||
|
--file ./Dockerfile .
|
||||||
11
.travis/prepare-release.sh
Executable file
11
.travis/prepare-release.sh
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Update version for Gradle
|
||||||
|
echo version=$1 >gradle.properties
|
||||||
|
|
||||||
|
# Build jar
|
||||||
|
./gradlew copyWebDist
|
||||||
|
./gradlew assemble
|
||||||
|
|
||||||
|
# Prepare Dockerhub release
|
||||||
|
source "$(dirname "$0")/prepare-dockerhub.sh" $1
|
||||||
14
.travis/publish-dockerhub.sh
Executable file
14
.travis/publish-dockerhub.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
source "$(dirname "$0")/docker-common.sh"
|
||||||
|
|
||||||
|
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
|
||||||
|
|
||||||
|
# Push docker images (built previously)
|
||||||
|
cd komga
|
||||||
|
docker buildx build \
|
||||||
|
--platform $PLATFORMS \
|
||||||
|
--cache-from gotson/komga:latest \
|
||||||
|
--tag gotson/komga:latest \
|
||||||
|
--tag gotson/komga:$1 \
|
||||||
|
--file ./Dockerfile . \
|
||||||
|
--push
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
FROM adoptopenjdk:11-jre-hotspot
|
FROM adoptopenjdk:11-jdk-hotspot
|
||||||
VOLUME /tmp
|
VOLUME /tmp
|
||||||
ARG DEPENDENCY=target/dependency
|
ARG DEPENDENCY=build/dependency
|
||||||
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
|
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
|
||||||
COPY ${DEPENDENCY}/META-INF /app/META-INF
|
COPY ${DEPENDENCY}/META-INF /app/META-INF
|
||||||
COPY ${DEPENDENCY}/BOOT-INF/classes /app
|
COPY ${DEPENDENCY}/BOOT-INF/classes /app
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
import com.palantir.gradle.docker.DockerExtension
|
|
||||||
import org.apache.tools.ant.taskdefs.condition.Os
|
import org.apache.tools.ant.taskdefs.condition.Os
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
|
|
@ -14,7 +13,6 @@ plugins {
|
||||||
id("org.springframework.boot") version "2.2.5.RELEASE"
|
id("org.springframework.boot") version "2.2.5.RELEASE"
|
||||||
id("io.spring.dependency-management") version "1.0.9.RELEASE"
|
id("io.spring.dependency-management") version "1.0.9.RELEASE"
|
||||||
id("com.github.ben-manes.versions") version "0.28.0"
|
id("com.github.ben-manes.versions") version "0.28.0"
|
||||||
id("com.palantir.docker") version "0.25.0"
|
|
||||||
id("com.gorylenko.gradle-git-properties") version "2.2.2"
|
id("com.gorylenko.gradle-git-properties") version "2.2.2"
|
||||||
jacoco
|
jacoco
|
||||||
}
|
}
|
||||||
|
|
@ -163,14 +161,6 @@ tasks {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configure<DockerExtension> {
|
|
||||||
name = "gotson/komga"
|
|
||||||
tag("latest", "$name:latest")
|
|
||||||
tag("semVer", "$name:$version")
|
|
||||||
copySpec.from(tasks.getByName("unpack").outputs).into("dependency")
|
|
||||||
buildArgs(mapOf("DEPENDENCY" to "dependency"))
|
|
||||||
}
|
|
||||||
|
|
||||||
springBoot {
|
springBoot {
|
||||||
buildInfo()
|
buildInfo()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@
|
||||||
[
|
[
|
||||||
"@semantic-release/exec",
|
"@semantic-release/exec",
|
||||||
{
|
{
|
||||||
"prepareCmd": "echo version=${nextRelease.version}> gradle.properties && ./gradlew copyWebDist && ./gradlew assemble",
|
"prepareCmd": ".travis/prepare-release.sh ${nextRelease.version}",
|
||||||
"publishCmd": ".travis/deploy-dockerhub-prod.sh"
|
"publishCmd": ".travis/publish-dockerhub.sh ${nextRelease.version}"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue