diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 73dd7b4a..a3160e84 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -11,15 +11,15 @@ jobs: steps: - name: Check out the code - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v3 - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.5.0 + uses: docker/setup-buildx-action@v2 - name: Log in to GitHub Container Registry - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} @@ -27,15 +27,15 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v4.4.0 + uses: docker/metadata-action@v4 with: images: ghcr.io/${{ github.repository }} - name: Build and push Docker image - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v4 with: context: . push: ${{ github.event_name != 'pull_request' }} - platforms: linux/amd64, linux/arm64 + platforms: linux/amd64,linux/arm64 tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile index 59899e09..583c4001 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Use the official Golang image as the base image +ARG TARGETOS TARGETARCH FROM --platform=$BUILDPLATFORM golang:1.20 as builder -ARG TARGETOS -ARG TARGETARCH +ARG TARGETOS TARGETARCH # Set up the working directory WORKDIR /app @@ -13,18 +13,17 @@ RUN go mod download COPY . . # Build the X-ui binary -RUN CGO_ENABLED=1 GOOS=\${TARGETOS} GOARCH=\${TARGETARCH} go build -o xui-release-\${TARGETARCH} -v main.go +RUN CGO_ENABLED=1 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o xui-release-$TARGETARCH -v main.go # Start a new stage using the base image FROM ubuntu:20.04 -ARG TARGETARCH -ARG TARGETOS +ARG TARGETOS TARGETARCH # Set up the working directory WORKDIR /app # Copy the X-ui binary and required files from the builder stage -COPY --from=builder /app/xui-release-\${TARGETARCH} /app/x-ui/xui-release +COPY --from=builder /app/xui-release-$TARGETARCH /app/x-ui/xui-release COPY x-ui.service /app/x-ui/x-ui.service COPY x-ui.sh /app/x-ui/x-ui.sh @@ -45,7 +44,7 @@ RUN wget https://github.com/mhsanaei/Xray-core/releases/latest/download/Xray-lin && wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat \ && wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat \ && wget https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/iran.dat \ - && mv xray xray-linux-\${TARGETARCH} + && mv xray xray-linux-$TARGETARCH WORKDIR /app RUN chmod +x /app/x-ui/x-ui.sh