| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | # ========================================================# Stage: Builder# ========================================================FROM golang:1.23-alpine AS builderWORKDIR /appARG TARGETARCHRUN apk --no-cache --update add \  build-base \  gcc \  wget \  unzipCOPY . .ENV CGO_ENABLED=1ENV CGO_CFLAGS="-D_LARGEFILE64_SOURCE"RUN go build -ldflags "-w -s" -o build/x-ui main.goRUN ./DockerInit.sh "$TARGETARCH"# ========================================================# Stage: Final Image of 3x-ui# ========================================================FROM alpineENV TZ=Asia/TehranWORKDIR /appRUN apk add --no-cache --update \  ca-certificates \  tzdata \  fail2ban \  bashCOPY --from=builder /app/build/ /app/COPY --from=builder /app/DockerEntrypoint.sh /app/COPY --from=builder /app/x-ui.sh /usr/bin/x-ui# Configure fail2banRUN rm -f /etc/fail2ban/jail.d/alpine-ssh.conf \  && cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local \  && sed -i "s/^\[ssh\]$/&\nenabled = false/" /etc/fail2ban/jail.local \  && sed -i "s/^\[sshd\]$/&\nenabled = false/" /etc/fail2ban/jail.local \  && sed -i "s/#allowipv6 = auto/allowipv6 = auto/g" /etc/fail2ban/fail2ban.confRUN chmod +x \  /app/DockerEntrypoint.sh \  /app/x-ui \  /usr/bin/x-uiENV X_UI_ENABLE_FAIL2BAN="true"VOLUME [ "/etc/x-ui" ]CMD [ "./x-ui" ]ENTRYPOINT [ "/app/DockerEntrypoint.sh" ]
 |