From 2cff51ca83ea1e214e9a6d4000c3fa6c425d9380 Mon Sep 17 00:00:00 2001 From: 1lkei <62320562+1lkei@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:32:05 +0800 Subject: [PATCH] feat: Optimizing docker build --- .github/workflows/test.yml | 65 -------------------------------------- Dockerfile.daemon | 25 +++++---------- Dockerfile.daemon_debian | 25 +++++---------- Dockerfile.web | 25 +++++---------- README.md | 28 +++++++++++++++- actions-time.txt | 2 +- 6 files changed, 52 insertions(+), 118 deletions(-) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index b60e97b..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: Docker images build and push test - -on: - push: - branches: [ "main" ] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4.2.2 - with: - persist-credentials: false - fetch-depth: 0 - - - name: Get latest release version - run: | - latest_version=$(curl -s https://api.github.com/repos/MCSManager/MCSManager/releases/latest | jq -r .tag_name) - echo "latest_version=$latest_version" >> $GITHUB_ENV - - - name: Check local version - run: | - if [ -f ./MCSManager_version ]; then - local_version=$(cat ./MCSManager_version) - else - local_version="none" - fi - echo "local_version=$local_version" >> $GITHUB_ENV - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3.2.0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.7.1 - - - name: Login to DockerHub - uses: docker/login-action@v3.3.0 - with: - username: 1lkei - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Docker build-push aio - uses: docker/build-push-action@v6.9.0 - with: - context: . - file: Dockerfile.aio - push: true # push to docker hub - tags: | - 1lkei/mcsmanager:latest - 1lkei/mcsmanager:${{ env.latest_version }} - build-args: | - LATEST_TAG=${{ env.latest_version }} - platforms: linux/amd64,linux/arm64 - - - name: Commit updated version - if: env.local_version != env.latest_version - run: | - echo "$latest_version" > MCSManager_version - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add MCSManager_version - git commit -m "Update version to $latest_version" - git remote set-url origin https://1lkei:${{ secrets.REPO_BOT }}@github.com/1lkei/mcsmanager-docker.git - git push \ No newline at end of file diff --git a/Dockerfile.daemon b/Dockerfile.daemon index 951bdf9..0200c92 100644 --- a/Dockerfile.daemon +++ b/Dockerfile.daemon @@ -1,23 +1,14 @@ -FROM node:lts-alpine AS builder - -ARG LATEST_TAG - -RUN apk update && \ - apk add --no-cache --virtual .build-deps curl && \ - cd /opt && \ - curl -L -o mcsmanager_linux_release.tar.gz https://github.com/MCSManager/MCSManager/releases/download/$LATEST_TAG/mcsmanager_linux_release.tar.gz && \ - tar -zxf mcsmanager_linux_release.tar.gz && \ - rm -rf mcsmanager_linux_release.tar.gz && \ - apk del .build-deps && \ - rm -rf /var/cache/apk/* - - FROM node:lts-alpine +ARG LATEST_TAG WORKDIR /opt/mcsmanager/daemon -COPY --from=builder /opt/mcsmanager/daemon ./ - -RUN npm install --omit=dev +RUN cd /tmp && \ + wget -O /tmp/mcsmanager.tar.gz https://github.com/MCSManager/MCSManager/releases/download/$LATEST_TAG/mcsmanager_linux_release.tar.gz && \ + tar -xf mcsmanager.tar.gz && \ + mv /tmp/mcsmanager/daemon /opt/mcsmanager/daemon && \ + cd /opt/mcsmanager/daemon && \ + npm install --omit=dev && \ + rm -rf /tmp/* ENTRYPOINT ["node", "--max-old-space-size=8192", "--enable-source-maps", "app.js"] \ No newline at end of file diff --git a/Dockerfile.daemon_debian b/Dockerfile.daemon_debian index a3f4bd6..34bc812 100644 --- a/Dockerfile.daemon_debian +++ b/Dockerfile.daemon_debian @@ -1,23 +1,14 @@ -FROM node:lts-alpine AS builder - -ARG LATEST_TAG - -RUN apk update && \ - apk add --no-cache --virtual .build-deps curl && \ - cd /opt && \ - curl -L -o mcsmanager_linux_release.tar.gz https://github.com/MCSManager/MCSManager/releases/download/$LATEST_TAG/mcsmanager_linux_release.tar.gz && \ - tar -zxf mcsmanager_linux_release.tar.gz && \ - rm -rf mcsmanager_linux_release.tar.gz && \ - apk del .build-deps && \ - rm -rf /var/cache/apk/* - - FROM node:lts-bookworm +ARG LATEST_TAG WORKDIR /opt/mcsmanager/daemon -COPY --from=builder /opt/mcsmanager/daemon ./ - -RUN npm install --omit=dev +RUN cd /tmp && \ + wget -O /tmp/mcsmanager.tar.gz https://github.com/MCSManager/MCSManager/releases/download/$LATEST_TAG/mcsmanager_linux_release.tar.gz && \ + tar -xf mcsmanager.tar.gz && \ + mv /tmp/mcsmanager/daemon /opt/mcsmanager/daemon && \ + cd /opt/mcsmanager/daemon && \ + npm install --omit=dev && \ + rm -rf /tmp/* ENTRYPOINT ["node", "--max-old-space-size=8192", "--enable-source-maps", "app.js"] \ No newline at end of file diff --git a/Dockerfile.web b/Dockerfile.web index 2b4232e..45038cc 100644 --- a/Dockerfile.web +++ b/Dockerfile.web @@ -1,23 +1,14 @@ -FROM node:lts-alpine AS builder - -ARG LATEST_TAG - -RUN apk update && \ - apk add --no-cache --virtual .build-deps curl && \ - cd /opt && \ - curl -L -o mcsmanager_linux_release.tar.gz https://github.com/MCSManager/MCSManager/releases/download/$LATEST_TAG/mcsmanager_linux_release.tar.gz && \ - tar -zxf mcsmanager_linux_release.tar.gz && \ - rm -rf mcsmanager_linux_release.tar.gz && \ - apk del .build-deps && \ - rm -rf /var/cache/apk/* - - FROM node:lts-alpine +ARG LATEST_TAG WORKDIR /opt/mcsmanager/web -COPY --from=builder /opt/mcsmanager/web ./ - -RUN npm install --omit=dev +RUN cd /tmp && \ + wget -O /tmp/mcsmanager.tar.gz https://github.com/MCSManager/MCSManager/releases/download/$LATEST_TAG/mcsmanager_linux_release.tar.gz && \ + tar -xf mcsmanager.tar.gz && \ + mv /tmp/mcsmanager/web /opt/mcsmanager/web && \ + cd /opt/mcsmanager/web && \ + npm install --omit=dev && \ + rm -rf /tmp/* ENTRYPOINT ["node", "--max-old-space-size=8192", "--enable-source-maps", "app.js"] \ No newline at end of file diff --git a/README.md b/README.md index ed7feac..dd5fe02 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,20 @@ https://hub.docker.com/r/1lkei/mcsmanager-web https://github.com/1lkei/mcsmanager-docker +### mcsmanager +#### 包含web和daemon +``` +docker run -d \ + --name mcsmanager \ + -p 23333:23333 \ + -p 24444:24444 \ + -p 25565:25565 \ + --restart unless-stopped \ + -v $(pwd)/mcsmanager/daemon/data:/opt/mcsmanager/daemon/data \ + -v /var/run/docker.sock:/var/run/docker.sock \ + 1lkei/mcsmanager:latest +``` + ### web #### 第一次会自动添加本机daemon,需手动修改ip地址为本机ip,端口为映射端口即可 ``` @@ -18,8 +32,8 @@ docker run -d \ -v $(pwd)/mcsmanager/daemon/data:/opt/mcsmanager/daemon/data \ 1lkei/mcsmanager-web:latest ``` -### daemon +### daemon ``` docker run -d \ --name mcsm-daemon \ @@ -31,6 +45,18 @@ docker run -d \ 1lkei/mcsmanager-daemon:latest ``` +### daemon debian版本 +``` +docker run -d \ + --name mcsm-daemon \ + -p 24444:24444 \ + -p 25565:25565 \ + --restart unless-stopped \ + -v $(pwd)/mcsmanager/daemon/data:/opt/mcsmanager/daemon/data \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + 1lkei/mcsmanager-daemon:debian +``` + ### 安装java 以下二选一: diff --git a/actions-time.txt b/actions-time.txt index d0b6f07..13dd3e4 100644 --- a/actions-time.txt +++ b/actions-time.txt @@ -1 +1 @@ -2024.11.29 \ No newline at end of file +2024.11.29v2 \ No newline at end of file