mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-10-27 02:24:40 +00:00 
			
		
		
		
	
		
			
	
	
		
			50 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | # ======================================================== | ||
|  | # Stage: Builder | ||
|  | # ======================================================== | ||
|  | FROM --platform=$BUILDPLATFORM golang:alpine AS builder | ||
|  | WORKDIR /app | ||
|  | ARG TARGETARCH | ||
|  | ENV CGO_ENABLED=1 | ||
|  | 
 | ||
|  | RUN apk --no-cache --update add \ | ||
|  |   build-base \ | ||
|  |   gcc \ | ||
|  |   wget \ | ||
|  |   unzip | ||
|  | 
 | ||
|  | COPY . . | ||
|  | 
 | ||
|  | RUN go build -o build/x-ui main.go | ||
|  | RUN ./DockerInit.sh "$TARGETARCH" | ||
|  | 
 | ||
|  | # ======================================================== | ||
|  | # Stage: Final Image of 3x-ui | ||
|  | # ======================================================== | ||
|  | FROM alpine | ||
|  | ENV TZ=Asia/Tehran | ||
|  | WORKDIR /app | ||
|  | 
 | ||
|  | RUN apk add --no-cache --update \ | ||
|  |   ca-certificates \ | ||
|  |   tzdata \ | ||
|  |   fail2ban | ||
|  | 
 | ||
|  | COPY --from=builder  /app/build/ /app/ | ||
|  | COPY --from=builder  /app/DockerEntrypoint.sh /app/ | ||
|  | COPY --from=builder  /app/x-ui.sh /usr/bin/x-ui | ||
|  | 
 | ||
|  | # Configure fail2ban | ||
|  | RUN 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.conf | ||
|  | 
 | ||
|  | RUN chmod +x \ | ||
|  |   /app/DockerEntrypoint.sh \ | ||
|  |   /app/x-ui \ | ||
|  |   /usr/bin/x-ui | ||
|  | 
 | ||
|  | VOLUME [ "/etc/x-ui" ] | ||
|  | ENTRYPOINT [ "/app/DockerEntrypoint.sh" ] |