Browse Source

👷 Added Docker CI

itspooya 1 year ago
parent
commit
13e3e23f20
2 changed files with 5 additions and 7 deletions
  1. 1 1
      .github/workflows/docker.yml
  2. 4 6
      Dockerfile

+ 1 - 1
.github/workflows/docker.yml

@@ -36,6 +36,6 @@ jobs:
         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 }}

+ 4 - 6
Dockerfile

@@ -1,9 +1,7 @@
 # Use the official Golang image as the base image
-ARG TARGETARCH
+FROM --platform=$BUILDPLATFORM golang:1.20 as builder
 ARG TARGETOS
-FROM golang:1.20 as builder
 ARG TARGETARCH
-ARG TARGETOS
 # Set up the working directory
 WORKDIR /app
 
@@ -15,7 +13,7 @@ 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
@@ -26,7 +24,7 @@ ARG TARGETOS
 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
 
@@ -47,7 +45,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