Browse Source

👷 Added Docker CI

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

+ 7 - 7
.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 }}

+ 6 - 7
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