mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-11-04 06:12:52 +00:00 
			
		
		
		
	Added ARM64
This commit is contained in:
		
							parent
							
								
									b4fd254c71
								
							
						
					
					
						commit
						f286c9a86a
					
				
					 2 changed files with 57 additions and 0 deletions
				
			
		
							
								
								
									
										47
									
								
								.github/DockerfileARM
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								.github/DockerfileARM
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
# Use the official Golang image as the base image
 | 
			
		||||
FROM 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 . .
 | 
			
		||||
RUN apt update && apt install gcc-aarch64-linux-gnu -y
 | 
			
		||||
# Build the X-ui binary
 | 
			
		||||
RUN GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc go build -o xui-release-arm64 -v main.go
 | 
			
		||||
 | 
			
		||||
# Start a new stage using the base image
 | 
			
		||||
FROM ubuntu:20.04
 | 
			
		||||
# Set up the working directory
 | 
			
		||||
WORKDIR /app
 | 
			
		||||
# Copy the X-ui binary and required files from the builder stage
 | 
			
		||||
COPY --from=builder /app/xui-release-arm64 /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-arm64-v8a.zip \
 | 
			
		||||
 && unzip Xray-linux-arm64-v8a.zip \
 | 
			
		||||
 && rm -f Xray-linux-arm64-v8a.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 \
 | 
			
		||||
 && mv xray xray-linux-arm64
 | 
			
		||||
 | 
			
		||||
WORKDIR /app
 | 
			
		||||
RUN chmod +x /app/x-ui/x-ui.sh
 | 
			
		||||
 | 
			
		||||
# Set the entrypoint
 | 
			
		||||
ENTRYPOINT ["/app/x-ui/xui-release"]
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/workflows/docker.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/docker.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -39,3 +39,13 @@ jobs:
 | 
			
		|||
          platforms: linux/amd64
 | 
			
		||||
          tags: ${{ steps.meta.outputs.tags }}
 | 
			
		||||
          labels: ${{ steps.meta.outputs.labels }}
 | 
			
		||||
 | 
			
		||||
      - name: Build and push Docker image ARM64
 | 
			
		||||
        uses: docker/build-push-action@v4
 | 
			
		||||
        with:
 | 
			
		||||
          context: .
 | 
			
		||||
          file: .github/DockerfileARM
 | 
			
		||||
          push: ${{ github.event_name != 'pull_request' }}
 | 
			
		||||
          platforms: linux/arm64
 | 
			
		||||
          tags: ${{ steps.meta.outputs.tags }}
 | 
			
		||||
          labels: ${{ steps.meta.outputs.labels }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue