| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- # Use the official Golang image as the base image
 
- FROM --platform=$BUILDPLATFORM golang:1.20 as builder
 
- # Set up the working directory
 
- 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 TARGETOS TARGETARCH
 
- # Build the X-ui binary
 
- RUN 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
 
- # Set up the working directory
 
- WORKDIR /app
 
- ARG TARGETOS TARGETARCH
 
- # 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 x-ui.service /app/x-ui/x-ui.service
 
- COPY x-ui.sh /app/x-ui/x-ui.sh
 
- # Set up the runtime environment
 
- RUN apt-get update && apt-get install -y \
 
-     wget \
 
-     unzip \
 
-     tzdata \
 
-     ca-certificates \
 
-  && rm -rf /var/lib/apt/lists/*
 
- 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 \
 
-  && 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 \
 
-  && arch=(dpkg --print-architecture) \
 
-  && mv xray xray-linux-$arch
 
- WORKDIR /app
 
- RUN chmod +x /app/x-ui/x-ui.sh
 
- # Set the entrypoint
 
- ENTRYPOINT ["/app/x-ui/xui-release"]
 
 
  |