diff options
| author | itspooya <fallenangel201190@yahoo.com> | 2023-05-08 05:10:36 +0300 |
|---|---|---|
| committer | Ho3ein <ho3ein.sanaei@gmail.com> | 2023-05-08 09:34:47 +0300 |
| commit | c73c71cc83fc48581c49cf1698d05fbc7aa54fe3 (patch) | |
| tree | d9add08a60ebb6fd92538e2aeb89e4cb38537a44 /Dockerfile | |
| parent | 2141d620695dc13c97ba1b8851248d71fa3ce4a5 (diff) | |
Fixed Dockerfile
Diffstat (limited to 'Dockerfile')
| -rw-r--r-- | Dockerfile | 30 |
1 files changed, 26 insertions, 4 deletions
@@ -1,5 +1,6 @@ # Use the official Golang image as the base image FROM --platform=$BUILDPLATFORM golang:1.20 as builder + # Set up the working directory WORKDIR /app @@ -8,15 +9,23 @@ 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 # Build the X-ui binary -RUN GOOS=linux GOARCH=amd64 go build -o xui-release-amd64 -v main.go +RUN if $TARGETPARCH == "arm64"; then GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o xui-release-arm64 -v main.go; fi +RUN if $TARGETPARCH == "amd64"; then GOOS=linux GOARCH=amd64 go build -o xui-release-amd64 -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-amd64 /app/x-ui/xui-release +RUN arch=$(uname -m); \ + if [ "$arch" = "aarch64" ]; then \ + COPY --from=builder /app/xui-release-arm64 /app/x-ui/xui-release; \ + else \ + COPY --from=builder /app/xui-release-amd64 /app/x-ui/xui-release; \ + fi COPY x-ui.service /app/x-ui/x-ui.service COPY x-ui.sh /app/x-ui/x-ui.sh @@ -31,13 +40,26 @@ RUN apt-get update && apt-get install -y \ WORKDIR /app/x-ui/bin # Download and set up the required files -RUN wget https://github.com/mhsanaei/Xray-core/releases/latest/download/Xray-linux-64.zip \ + +RUN 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 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 + && mv xray xray-linux-amd64 \ + fi WORKDIR /app RUN chmod +x /app/x-ui/x-ui.sh |
