Browse Source

Fixed Dockerfile

itspooya 1 year ago
parent
commit
e01fb9b605
1 changed files with 24 additions and 19 deletions
  1. 24 19
      Dockerfile

+ 24 - 19
Dockerfile

@@ -7,18 +7,27 @@ WORKDIR /app
 # Copy the Go modules and download the dependencies
 COPY go.mod go.sum ./
 RUN go mod download
+
 # Copy the source code
 COPY . .
+
 ARG TARGETPARCH
-RUN if $TARGETPARCH == "arm64"; then apt update && apt install gcc-aarch64-linux-gnu -y; fi
+
+RUN if [ "$TARGETPARCH" = "arm64" ]; then apt update && apt install gcc-aarch64-linux-gnu -y; fi
+
 # Build the X-ui binary
-RUN if $TARGETPARCH == "arm64"; then GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o xui-release -v main.go; fi
-RUN if $TARGETPARCH == "amd64"; then GOOS=linux GOARCH=amd64 go build -o xui-release -v main.go; fi
+RUN if [ "$TARGETPARCH" = "arm64" ]; then \
+        GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o xui-release -v main.go; \
+    elif [ "$TARGETPARCH" = "amd64" ]; then \
+        GOOS=linux GOARCH=amd64 go build -o xui-release -v main.go; \
+    fi
 
 # Start a new stage using the base image
 FROM ubuntu:20.04
+
 # 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 /app/x-ui/xui-release
 COPY x-ui.service /app/x-ui/x-ui.service
@@ -35,28 +44,24 @@ RUN apt-get update && apt-get install -y \
 WORKDIR /app/x-ui/bin
 
 # Download and set up the required files
-
-RUN arch=$(uname -m) \
-        if [ "$arch" = "aarch64" ]; then \
+RUN arch=$(uname -m) && \
+    if [ "$arch" = "aarch64" ]; then \
         wget https://github.com/mhsanaei/xray-core/releases/latest/download/Xray-linux-arm64-v8a.zip \
         && unzip Xray-linux-arm64-v8a.zip \
         && rm -f Xray-linux-arm64-v8a.zip geoip.dat geosite.dat iran.dat \
         && 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-arm64 \
-        fi
-
-RUN arch=$(uname -m) \
- if [ "$arch" = "amd64" ]; then \
- wget https://github.com/mhsanaei/Xray-core/releases/latest/download/Xray-linux-64.zip \
- && unzip Xray-linux-64.zip \
- && rm -f Xray-linux-64.zip geoip.dat geosite.dat iran.dat \
- && 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-amd64 \
- fi
+        && mv xray xray-linux-arm64; \
+    elif [ "$arch" = "amd64" ]; then \
+        wget https://github.com/mhsanaei/Xray-core/releases/latest/download/Xray-linux-64.zip \
+        && unzip Xray-linux-64.zip \
+        && rm -f Xray-linux-64.zip geoip.dat geosite.dat iran.dat \
+        && 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-amd64; \
+    fi
 
 WORKDIR /app
 RUN chmod +x /app/x-ui/x-ui.sh