forked from Grasscutters/Grasscutter
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Docker Support (Grasscutters#2486)
* chore(docker): add build workflow * chore(docker): update gradle image * chore(docker): this really shouldnt be running on raspberry pi's right now. * chore(docker): not sure why we need unzip here * chore(docker): attempt to add nodejs to allow the handbook to build * chore(docker): whoops, needs to be done during build * chore(docker): i dont know if this is going to work * chore(docker): replace my username with repo org as I am no longer testing this * chore(docker): version will change in the future, so fix it now.
- Loading branch information
Showing
4 changed files
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
name: Build Docker Container | ||
on: | ||
push: | ||
release: | ||
types: [published] | ||
|
||
jobs: | ||
publish: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
steps: | ||
- name: Checkout Project | ||
uses: actions/checkout@v4 | ||
|
||
- name: Generate Docker Meta | ||
uses: docker/metadata-action@v5 | ||
id: meta | ||
with: | ||
images: ghcr.io/${{ github.repository_owner }} | ||
tags: | | ||
type=ref,event=branch | ||
type=semver,pattern={{version}} | ||
type=semver,pattern={{major}}.{{minor}} | ||
type=semver,pattern={{major}} | ||
type=sha | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v3 | ||
|
||
- name: Setup Docker Buildx | ||
uses: docker/setup-buildx-action@v3.1.0 | ||
|
||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v3.0.0 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.repository_owner }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Build and Push Docker image | ||
uses: docker/build-push-action@v5.2.0 | ||
with: | ||
context: . | ||
push: true | ||
platforms: linux/amd64 | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -64,6 +64,7 @@ tmp/ | |
|
||
/*.jar | ||
/*.sh | ||
!entrypoint.sh | ||
|
||
GM Handbook*.txt | ||
handbook.html | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Builder | ||
FROM gradle:jdk17-alpine as builder | ||
|
||
RUN apk add --update nodejs npm | ||
|
||
WORKDIR /app | ||
COPY ./ /app/ | ||
|
||
RUN gradle jar --no-daemon | ||
|
||
# Fetch Data | ||
FROM bitnami/git:2.43.0-debian-11-r1 as data | ||
|
||
ARG DATA_REPOSITORY=https://gitlab.com/YuukiPS/GC-Resources.git | ||
ARG DATA_BRANCH=4.0 | ||
|
||
WORKDIR /app | ||
|
||
RUN git clone --branch ${DATA_BRANCH} --depth 1 ${DATA_REPOSITORY} | ||
|
||
# Result Container | ||
FROM amazoncorretto:17-alpine | ||
|
||
WORKDIR /app | ||
|
||
# Copy built assets | ||
COPY --from=builder /app/grasscutter-*.jar /app/grasscutter.jar | ||
COPY --from=builder /app/keystore.p12 /app/keystore.p12 | ||
|
||
# Copy the resources | ||
COPY --from=data /app/GC-Resources/Resources /app/resources/ | ||
|
||
# Copy startup files | ||
COPY ./entrypoint.sh /app/ | ||
|
||
CMD [ "sh", "/app/entrypoint.sh" ] | ||
|
||
EXPOSE 80 443 8888 22102 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#/bin/sh | ||
|
||
java -jar /app/grasscutter.jar |