From e01fb9b605d048082b8ee814a80ba603a0d57404 Mon Sep 17 00:00:00 2001 From: itspooya Date: Mon, 8 May 2023 05:52:48 +0330 Subject: [PATCH] Fixed Dockerfile --- Dockerfile | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index 384226d4..cc08c571 100644 --- a/Dockerfile +++ b/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