diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 15ff899..e6748ab 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -80,21 +80,20 @@ jobs: AWS_S3_BUCKET: monibuca SOURCE_DIR: 'bin' DEST_DIR: ${{ env.dest }} - - name: docker build amd64 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: docker build if: success() && startsWith(github.ref, 'refs/tags/') run: | curl -L https://download.m7s.live/bin/admin.zip -o admin.zip tar -zxvf bin/m7s_v5_linux_amd64.tar.gz - mv m7s monibuca_linux - docker login -u langhuihui -p ${{ secrets.DOCKER_PASSWORD }} - docker buildx build --platform linux/amd64 -t langhuihui/monibuca:v5 --push . - - name: docker build arm64 - if: success() && startsWith(github.ref, 'refs/tags/') - run: | + mv m7s monibuca_amd64 tar -zxvf bin/m7s_v5_linux_arm64.tar.gz - mv -f m7s monibuca_linux + mv m7s monibuca_arm64 docker login -u langhuihui -p ${{ secrets.DOCKER_PASSWORD }} - docker buildx build --platform linux/arm64 -t langhuihui/monibuca:v5 --push . + docker buildx build --platform linux/amd64,linux/arm64 -t langhuihui/monibuca:v5 --push . - name: docker push version tag if: success() && !contains(env.version, 'beta') run: | diff --git a/Dockerfile b/Dockerfile index 3ea7606..450ceb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,8 @@ WORKDIR /monibuca # Copy the pre-compiled binary from the build context # The GitHub Actions workflow prepares 'monibuca_linux' in the context root -COPY monibuca_linux ./monibuca_linux +COPY monibuca_amd64 ./monibuca_amd64 +COPY monibuca_arm64 ./monibuca_arm64 COPY admin.zip ./admin.zip @@ -17,5 +18,14 @@ COPY example/default/config.yaml /etc/monibuca/config.yaml EXPOSE 6000 8080 8443 1935 554 5060 9000-20000 EXPOSE 5060/udp 44944/udp +RUN if [ "$(uname -m)" = "aarch64" ]; then \ + mv ./monibuca_arm64 ./monibuca_linux; \ + rm ./monibuca_amd64; \ + else \ + mv ./monibuca_amd64 ./monibuca_linux; \ + rm ./monibuca_arm64; \ + fi + + ENTRYPOINT [ "./monibuca_linux"] CMD ["-c", "/etc/monibuca/config.yaml"]