mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-10-27 18:32:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # ========================================================
 | |
| # Stage: Builder
 | |
| # ========================================================
 | |
| FROM --platform=$BUILDPLATFORM golang:1.20.4-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" ]
 | 
