From 7da4d645b52e78d9a1a62ccefb6336205c565ddf Mon Sep 17 00:00:00 2001 From: zeaslity Date: Tue, 22 Nov 2022 16:45:07 +0800 Subject: [PATCH] build my base image --- .github/workflows/build-push-docker.yml | 109 ++++++++++++++---- .../build-my-own-base-image.dockerfile | 5 + server/Dockerfile | 26 +++++ 3 files changed, 119 insertions(+), 21 deletions(-) create mode 100644 localEnvironment/src/main/java/io/wdd/localenviroment/build-my-own-base-image.dockerfile create mode 100644 server/Dockerfile diff --git a/.github/workflows/build-push-docker.yml b/.github/workflows/build-push-docker.yml index 7bd77a1..964f218 100644 --- a/.github/workflows/build-push-docker.yml +++ b/.github/workflows/build-push-docker.yml @@ -1,17 +1,19 @@ -# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created -# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path +# https://www.springcloud.io/post/2022-08/springcloud-github-actions +# good reference + name: Maven Package on: - # Triggers the workflow on push or pull request events but only for the main branch + # Triggers the workflow on push request events but only for the main branch push: branches: [ main ] # tags: # tags 更新时触发 workflow # - 'v*' + # when merged from branches to master will triger the action pull_request: branches: [ main ] - # Allows you to run this workflow manually from the Actions tab + # manually run this workflow from the Actions tab workflow_dispatch: @@ -21,6 +23,7 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Set up JDK 11 uses: actions/setup-java@v3 with: @@ -30,23 +33,87 @@ jobs: settings-path: ${{ github.workspace }} # location for the settings.xml file cache: maven - - name: Build Maven - run: | - mvn -B -DskipTests=true package --file pom.xml - ls - echo "--------------------------------------" - pwd - echo "--------------------------------------" - cd ./server/target - ls - cd /home/runner/work/ProjectOctopus/ProjectOctopus - echo "--------------------------------------" - cd ./agent/target - ls - cd /home/runner/work/ProjectOctopus/ProjectOctopus - echo "--------------------------------------" - cat /proc/cpuinfo - echo "--------------------------------------" + - name: Docker Setup QEMU + # You may pin to the exact commit or the version. + # uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 + uses: docker/setup-qemu-action@v2.1.0 + with: + # QEMU static binaries Docker image (e.g. tonistiigi/binfmt:latest) + image: # optional, default is tonistiigi/binfmt:latest + # Platforms to install (e.g. arm64,riscv64,arm) + platforms: amd64,arm64 + + - name: Docker Setup Buildx + # You may pin to the exact commit or the version. + # uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325 + uses: docker/setup-buildx-action@v2.2.1 + + - name: Docker Login + # You may pin to the exact commit or the version. + # uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + uses: docker/login-action@v2.1.0 + with: + # Username used to log against the Docker registry + username: ${{ secrets.DOCKERHUB_USERNAME }} + # Password or personal access token used to log against the Docker registry + password: ${{ secrets.DOCKERHUB_TOKEN }} + # optional, default is true + logout: true + + + - name: Build My Base Image + uses: docker/build-push-action@v3.2.0 + with: + context: ./ + # Path to the Dockerfile + file: ./localEnvironment/src/main/java/io/wdd/localenviroment/build-my-own-base-image.dockerfile + platforms: linux/amd64,,linux/arm64 + push: true + +# - name: Build Maven +# run: | +# mvn -B -DskipTests=true package --file pom.xml +# ls +# echo "--------------------------------------" +# pwd +# echo "--------------------------------------" +# cd ./server/target +# ls +# cd /home/runner/work/ProjectOctopus/ProjectOctopus +# echo "--------------------------------------" +# cd ./agent/target +# ls +# cd /home/runner/work/ProjectOctopus/ProjectOctopus +# echo "--------------------------------------" +# cat /proc/cpuinfo +# echo "--------------------------------------" +# +# - name: Build and push Docker images +# # You may pin to the exact commit or the version. +# # uses: docker/build-push-action@c56af957549030174b10d6867f20e78cfd7debc5 +# uses: docker/build-push-action@v3.2.0 +# with: +# context: # optional +# # Path to the Dockerfile +# file: # optional +# # List of metadata for an image +# labels: # optional +# # Load is a shorthand for --output=type=docker +# load: # optional, default is false +# # Set the networking mode for the RUN instructions during build +# network: # optional +# # Do not use cache when building the image +# no-cache: # optional, default is false +# # Do not cache specified stages +# no-cache-filters: # optional +# # List of output destinations (format: type=local,dest=path) +# outputs: # optional +# # List of target platforms for build +# platforms: linux/amd64,,linux/arm64 +# # Always attempt to pull all referenced images +# pull: # optional, default is false +# # Push is a shorthand for --output=type=registry +# push: # optional, default is false diff --git a/localEnvironment/src/main/java/io/wdd/localenviroment/build-my-own-base-image.dockerfile b/localEnvironment/src/main/java/io/wdd/localenviroment/build-my-own-base-image.dockerfile new file mode 100644 index 0000000..243662a --- /dev/null +++ b/localEnvironment/src/main/java/io/wdd/localenviroment/build-my-own-base-image.dockerfile @@ -0,0 +1,5 @@ +FROM eclipse-temurin:11-jre-focal + +MAINTAINER zeaslity@gmail.com + +RUN /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends iputils-ping net-tools dnsutils lsof curl wget mtr-tiny vim && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/server/Dockerfile b/server/Dockerfile new file mode 100644 index 0000000..5b66842 --- /dev/null +++ b/server/Dockerfile @@ -0,0 +1,26 @@ + +# Base images that the image needs to depend on +FROM openjdk:11-jre-alpine + +# The name of the maintainer +MAINTAINER super-wdd + +# Set environment variables +ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx512m" + +# Set time zone +RUN set -eux; \ + ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \ + echo $TZ > /etc/timezone \ + +# Create Folder +RUN mkdir -p /wdd + +# Define the work dir +WORKDIR /wdd + +# Copy the jar and rename it +COPY ./target/server-*.jar /server.jar + +# When the docker container starts, run the jar +ENTRYPOINT exec java ${JAVA_OPTS} -jar /wdd/lfs-admin.jar