diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1561c87..45d93f8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,6 +35,7 @@ jobs: trimpath: true - name: Create ZIP archive + if: startsWith(github.ref, 'refs/tags/') run: | cp -v ./config_example.ini ./build || exit 1 pushd build || exit 1 @@ -60,3 +61,24 @@ jobs: body: For test only name: ${{ github.ref_name }} Pre Release files: yggdrasil*.zip* + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + if: startsWith(github.ref, 'refs/tags/') + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + if: startsWith(github.ref, 'refs/tags/') + - name: Login to Docker Hub + uses: docker/login-action@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v3 + if: startsWith(github.ref, 'refs/tags/') + with: + context: . + push: true + platforms: linux/amd64,linux/arm64 + tags: gardel/yggdrasil-go:latest, gardel/yggdrasil-go:${{ github.ref_name }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3362925 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM alpine:latest + +LABEL maintainer="Gardel " +LABEL "Description"="Go Yggdrasil Server" + +ARG TARGETOS +ARG TARGETARCH +RUN mkdir -p /app +COPY "build/yggdrasil-${TARGETOS}-${TARGETARCH}" /app/yggdrasil + +EXPOSE 8080 +VOLUME /app/data + +WORKDIR /app/data +ENTRYPOINT ["/app/yggdrasil"] diff --git a/Makefile b/Makefile index 4d43000..1dbd2d6 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ GO_CMD ?= go -GO_BUILD = $(GO_CMD) build -trimpath -ldflags "-s -w" +GO_BUILD = $(GO_CMD) build -trimpath -ldflags "-s -w -buildid=" GO_CLEAN = $(GO_CMD) clean GO_TEST = $(GO_CMD) test GO_GET = $(GO_CMD) get @@ -11,7 +11,7 @@ PACKAGE_NAME = yggdrasil.tar.gz default: $(BINARY) $(BINARY): - $(GO_BUILD) -tags=nomsgpack -o $(BINARY) + $(GO_BUILD) -tags='nomsgpack,sqlite,mysql' -o $(BINARY) get: $(GO_GET) diff --git a/README.md b/README.md index 1a3f4a9..04a99c1 100644 --- a/README.md +++ b/README.md @@ -26,3 +26,10 @@ 注册地址在 `/profile/index.html`。 +## Docker + +使用 docker 快速上手: + +```shell +docker run -d --name yggdrasil-go -v $(pwd)/data:/app/data -p 8080:8080 gardel/yggdrasil-go:latest +```