diff --git a/DockerInitFiles.sh b/DockerInitFiles.sh new file mode 100755 index 00000000..b62c0279 --- /dev/null +++ b/DockerInitFiles.sh @@ -0,0 +1,17 @@ +#!/bin/sh +if [ $1 == "amd64" ]; then + ARCH="64"; + FNAME="amd64"; +elif [ $1 == "arm64" ]; then + ARCH="arm64-v8a" + FNAME="arm64"; +else + ARCH="64"; + FNAME="amd64"; +fi +mkdir -p build/bin +wget "https://github.com/XTLS/Xray-core/releases/download/v1.8.1/Xray-linux-${ARCH}.zip" +wget "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat" -o build/bin/geoip.dat +wget "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat" -o build/bin/geosite.dat +mv xray "build/bin/xray-linux-${FNAME}" +mv main build/x-ui \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index ce210d22..ef07c95e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,18 @@ FROM golang:1.20-alpine AS builder WORKDIR /app -ENV CGO_ENABLED 1 -RUN apk add gcc && apk --no-cache --update add build-base +ARG TARGETARCH +RUN apk --no-cache --update add build-base gcc wget COPY . . -RUN go build main.go +RUN env CGO_ENABLED=1 go build main.go +RUN ./DockerInitFiles.sh "$TARGETARCH" FROM alpine LABEL org.opencontainers.image.authors="alireza7@gmail.com" ENV TZ=Asia/Tehran WORKDIR /app -RUN apk add ca-certificates tzdata && mkdir bin +RUN apk add ca-certificates tzdata -# Download latest rule files -ADD https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat \ - https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat \ - bin/ - -COPY --from=builder /app/main /app/x-ui +COPY --from=builder /app/build/ /app/ VOLUME [ "/etc/x-ui" ] CMD [ "./x-ui" ] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 24da1a0c..2e57169f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,4 +7,6 @@ services: - $PWD/db/:/etc/x-ui/ - $PWD/cert/:/root/cert/ restart: unless-stopped - network_mode: host + ports: + - 54321:54321 + - 443:443