Merge pull request 'feature/docker-image' (#11) from feature/docker-image into main

Reviewed-on: https://git.walzen665.de/Walzen665/sharepulse/pulls/11
This commit is contained in:
Max W. 2024-02-24 20:42:28 +00:00
commit 32f159ff4d
3 changed files with 77 additions and 6 deletions

View File

@ -3,7 +3,7 @@ name: SharePulse Build
on:
push:
branches:
- main
- '**'
jobs:
build-jar:
@ -41,4 +41,42 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: jar-artifact
path: build/libs/*.jar
path: build/libs/*.jar
build-docker-image:
needs: build-jar
runs-on: ubuntu-22.04
steps:
- name: Initialize Docker runtime
run: |
apt-get update
apt-get install ca-certificates curl gnupg lsb-release -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin -y
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifact
uses: actions/download-artifact@v3
with:
name: jar-artifact
path: build/libs
- name: Build Docker Image
run: docker build . -t walzen665/sharepulse:latest
- name: Tag Docker image
run: docker tag walzen665/sharepulse:latest git.walzen665.de/walzen665/sharepulse:latest
- name: Log in to Gitea Docker Registry
run: echo ${{ secrets.GITEAREGISTRYTOKEN }} | docker login -u ${{ secrets.GITEAREGISTRYUSERNAME }} --password-stdin https://git.walzen665.de
- name: Push Docker Image to Gitea
run: docker push git.walzen665.de/walzen665/sharepulse:latest

View File

@ -1,6 +1,8 @@
FROM openjdk:23-jdk-slim
LABEL authors="Walzen665"
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
WORKDIR /app
COPY build/libs/*.jar /app/sharepulse.jar
COPY docker-entrypoint.sh /app/docker-entrypoint.sh
EXPOSE 80
RUN chmod +x /app/docker-entrypoint.sh
ENTRYPOINT ["/app/docker-entrypoint.sh"]

31
docker-entrypoint.sh Normal file
View File

@ -0,0 +1,31 @@
#!/bin/bash
# Use environment variables or default values
RETHINKDB_HOST=${RETHINKDB_HOST:-localhost}
RETHINKDB_PORT=${RETHINKDB_PORT:-28015}
RETHINKDB_DATABASE=${RETHINKDB_DATABASE:-sharepulse}
SHAREPULSE_FILEPASSWORD_LENGTH=${SHAREPULSE_FILEPASSWORD_LENGTH:-6}
SHAREPULSE_FILEID_LENGTH=${SHAREPULSE_FILEID_LENGTH:-6}
SHAREPULSE_TEMP_FILESTORE_PATH=${SHAREPULSE_TEMP_FILESTORE_PATH:-/temp-filestore}
SHAREPULSE_AUTO_RESET_ON_STARTUP=${SHAREPULSE_AUTO_RESET_ON_STARTUP:-true}
MAX_FILE_SIZE=${MAX_FILE_SIZE:-1GB}
MAX_REQUEST_SIZE=${MAX_REQUEST_SIZE:-1GB}
# Inject environment variables into application.properties or use SPRING_APPLICATION_JSON
export SPRING_APPLICATION_JSON=$(cat << EOF
{
"rethinkdb.host": "$RETHINKDB_HOST",
"rethinkdb.port": $RETHINKDB_PORT,
"rethinkdb.database": "$RETHINKDB_DATABASE",
"sharepulse.filepassword.length": $SHAREPULSE_FILEPASSWORD_LENGTH,
"sharepulse.fileid.length": $SHAREPULSE_FILEID_LENGTH,
"sharepulse.temp-filestore-path": "$SHAREPULSE_TEMP_FILESTORE_PATH",
"sharepulse.auto-reset-on-startup": $SHAREPULSE_AUTO_RESET_ON_STARTUP,
"spring.servlet.multipart.max-file-size": "$MAX_FILE_SIZE",
"spring.servlet.multipart.max-request-size": "$MAX_REQUEST_SIZE"
}
EOF
)
# Execute the jar file
exec java -jar sharepulse.jar