From 129e3e305a5e701d0f8efe53ce689268c401ecaf Mon Sep 17 00:00:00 2001 From: Bengt Giger Date: Thu, 17 Dec 2020 17:02:46 +0100 Subject: [PATCH] Switch build to distributed config; universal Dockerfile --- ...ker_images.yml => build_docker_latest.yml} | 37 ++++++++++++++----- docker/demo/Dockerfile | 2 +- .../distributed/sebuniversal.Dockerfile | 33 +++++++++++++++++ 3 files changed, 61 insertions(+), 11 deletions(-) rename .github/workflows/{build_docker_images.yml => build_docker_latest.yml} (71%) create mode 100644 docker/testing/distributed/sebuniversal.Dockerfile diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_latest.yml similarity index 71% rename from .github/workflows/build_docker_images.yml rename to .github/workflows/build_docker_latest.yml index 15d543ab..42a6d3f3 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_latest.yml @@ -1,3 +1,7 @@ +# On pushing to master branch, build and push docker images with tags +# - latest +# - shorted SHA + name: latest on: @@ -25,25 +29,38 @@ jobs: # MYSQL_ROOT_PASSWORD: somePW # MYSQL_ALLOW_EMPTY_PASSWORD: yes - build: runs-on: ubuntu-latest steps: - - name: Checkout repository + - + name: Get short SHA + uses: benjlevesque/short-sha@v1.2 + id: short-sha + - + name: Store short SHA as environment variable + run: echo $SHA + env: + SHA: ${{ steps.short-sha.outputs.sha }} + - + name: Checkout repository uses: actions/checkout@v2 - - name: Set up JDK11 + - + name: Set up JDK11 uses: actions/setup-java@v1 with: java-version: 11 - - name: Cache Maven packages + - + name: Cache Maven packages uses: actions/cache@v2 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - - name: Build with maven - run: mvn clean package -DskipTests -Dbuild-version="demo" - - uses: actions/upload-artifact@v2 + - + name: Build with maven + run: mvn clean package -DskipTests -Dbuild-version="${{ env.SHA }}" + - + uses: actions/upload-artifact@v2 with: name: Package path: target/seb-server-demo.jar @@ -86,8 +103,8 @@ jobs: uses: docker/build-push-action@v2 with: context: . - file: ./docker/demo/Dockerfile + file: ./docker/testing/distributed/sebuniversal.Dockerfile push: true tags: | - bengig/seb-server:demo - bengig/seb-server:${{ github.sha }} + bengig/seb-server:latest + bengig/seb-server:${{ env.SHA }} diff --git a/docker/demo/Dockerfile b/docker/demo/Dockerfile index 5b90c20f..1fceb891 100644 --- a/docker/demo/Dockerfile +++ b/docker/demo/Dockerfile @@ -8,7 +8,7 @@ ENV SERVER_PWD=somePW RUN groupadd --system spring && useradd --system --gid spring spring # TODO: this shouldn't be necessary, log to stdout instead -RUN mkdir -p /sebserver/log && touch /sebserver/log/sebserver.log && chown -R spring:spring /sebserver/log +# RUN mkdir -p /sebserver/log && touch /sebserver/log/sebserver.log && chown -R spring:spring /sebserver/log USER spring:spring diff --git a/docker/testing/distributed/sebuniversal.Dockerfile b/docker/testing/distributed/sebuniversal.Dockerfile new file mode 100644 index 00000000..536bf74a --- /dev/null +++ b/docker/testing/distributed/sebuniversal.Dockerfile @@ -0,0 +1,33 @@ +FROM openjdk:11-jre-stretch + +ENV SEBSERVER_MODE="webservice" +ENV SERVER_PORT="8080" +ENV SECRET=somePW + +RUN groupadd --system spring && useradd --system --gid spring spring +USER spring:spring + +COPY docker/testing/distributed/webservice/config/ /sebserver/config/ +COPY /sebserver/target/seb-server.jar /sebserver/seb-server.jar + +WORKDIR /sebserver + +CMD if [ ${SEBSERVER_MODE} == "gui" ]; then exec java \ + -Xms64M \ + -Xmx1G \ + -jar "seb-server.jar" \ + --spring.profiles.active=gui,prod,prod-gui \ + --spring.config.location=file:/sebserver/config/spring/,classpath:/config/ \ + --sebserver.password="${SECRET}" ; \ + else \ + exec java \ + -Xms64M \ + -Xmx1G \ + -jar "${SEBSERVER_JAR}" \ + --spring.profiles.active=ws,prod,prod-ws \ + --spring.config.location=file:/sebserver/config/spring/,classpath:/config/ \ + --sebserver.mariadb.password="${SECRET}" \ + --sebserver.password="${SECRET}" ; \ + fi; + +EXPOSE 8080 \ No newline at end of file