mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 08:20:25 +08:00 
			
		
		
		
	ci: 优化镜像构建和docker compose
This commit is contained in:
		
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -19,3 +19,8 @@
 | 
				
			|||||||
.idea
 | 
					.idea
 | 
				
			||||||
.vscode
 | 
					.vscode
 | 
				
			||||||
out
 | 
					out
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					server/docs/docker-compose
 | 
				
			||||||
 | 
					server/config.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mayfly-go.log
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										38
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# 构建前端资源
 | 
				
			||||||
 | 
					FROM node:18-alpine3.16 as fe-builder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WORKDIR /mayfly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY mayfly_go_web .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN yarn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN yarn build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 构建后端资源
 | 
				
			||||||
 | 
					FROM golang:1.20-alpine3.16 as be-builder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV GOPROXY https://goproxy.cn
 | 
				
			||||||
 | 
					WORKDIR /mayfly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy the go source for building server
 | 
				
			||||||
 | 
					COPY server .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN go mod download
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY --from=fe-builder /mayfly/dist /mayfly/static/static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build
 | 
				
			||||||
 | 
					RUN GO111MODULE=on CGO_ENABLED=0 GOOS=linux \
 | 
				
			||||||
 | 
					    go build -a \
 | 
				
			||||||
 | 
					    -o mayfly-go main.go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM alpine:3.16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN apk add --no-cache ca-certificates bash expat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WORKDIR /mayfly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY --from=be-builder /mayfly/mayfly-go /usr/local/bin/mayfly-go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMD ["mayfly-go"]
 | 
				
			||||||
@@ -2,19 +2,15 @@ version: "3.9"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
services:
 | 
					services:
 | 
				
			||||||
  mysql:
 | 
					  mysql:
 | 
				
			||||||
    image: "mysql:5.7"
 | 
					    image: "mysql:8"
 | 
				
			||||||
    container_name: mayfly-go-mysql
 | 
					    container_name: mayfly-go-mysql
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      MYSQL_ROOT_PASSWORD: 111049
 | 
					      MYSQL_ROOT_PASSWORD: 111049
 | 
				
			||||||
      MYSQL_DATABASE: mayfly-go
 | 
					      MYSQL_DATABASE: mayfly-go
 | 
				
			||||||
      TZ: Asia/Shanghai
 | 
					      TZ: Asia/Shanghai
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - ./docs/docker-compose/mysql/data/mydir:/mydir
 | 
					      - ./server/docs/docker-compose/mysql/data/mydir:/mydir
 | 
				
			||||||
      - ./docs/docker-compose/mysql/data/datadir:/var/lib/mysql
 | 
					      - ./server/docs/docker-compose/mysql/data/datadir:/var/lib/mysql
 | 
				
			||||||
      # 在宿主机编写 /apps/mysql/conf/my.cnf
 | 
					 | 
				
			||||||
      - ./docs/docker-compose/mysql/my.cnf:/etc/my.cnf
 | 
					 | 
				
			||||||
      # 数据库还原目录 可将需要还原的sql文件放在这里
 | 
					 | 
				
			||||||
      - ./docs/docker-compose/mysql/init:/docker-entrypoint-initdb.d
 | 
					 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  server:
 | 
					  server:
 | 
				
			||||||
@@ -28,6 +24,8 @@ services:
 | 
				
			|||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      TZ: Asia/Shanghai
 | 
					      TZ: Asia/Shanghai
 | 
				
			||||||
      WAIT_HOSTS: mysql:3306
 | 
					      WAIT_HOSTS: mysql:3306
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./server/config.yml.example:/mayfly/config.yml
 | 
				
			||||||
    depends_on:
 | 
					    depends_on:
 | 
				
			||||||
      - mysql
 | 
					      - mysql
 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
FROM golang:1.19-alpine3.16 as builder
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV GOPROXY https://goproxy.cn
 | 
					 | 
				
			||||||
WORKDIR /mayfly
 | 
					 | 
				
			||||||
COPY go.mod go.mod
 | 
					 | 
				
			||||||
COPY go.sum go.sum
 | 
					 | 
				
			||||||
RUN go mod download
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy the go source for building server
 | 
					 | 
				
			||||||
COPY . .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Build
 | 
					 | 
				
			||||||
RUN GO111MODULE=on CGO_ENABLED=0 GOOS=linux \
 | 
					 | 
				
			||||||
    go build -a \
 | 
					 | 
				
			||||||
    -o mayfly-go main.go
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM alpine:3.16
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk add --no-cache ca-certificates bash expat
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /mayfly
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY --from=builder /mayfly/config.yml /mayfly/config.yml
 | 
					 | 
				
			||||||
COPY --from=builder /mayfly/mayfly-go /usr/local/bin/mayfly-go
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD ["mayfly-go"]
 | 
					 | 
				
			||||||
@@ -20,10 +20,10 @@ aes:
 | 
				
			|||||||
mysql:
 | 
					mysql:
 | 
				
			||||||
  # 自动升级数据库
 | 
					  # 自动升级数据库
 | 
				
			||||||
  auto-migration: false
 | 
					  auto-migration: false
 | 
				
			||||||
  host: localhost:3306
 | 
					  host: mysql:3306
 | 
				
			||||||
  username: root
 | 
					  username: root
 | 
				
			||||||
  password: 111049
 | 
					  password: 111049
 | 
				
			||||||
  db-name: mayfly_go
 | 
					  db-name: mayfly-go
 | 
				
			||||||
  config: charset=utf8&loc=Local&parseTime=true
 | 
					  config: charset=utf8&loc=Local&parseTime=true
 | 
				
			||||||
  max-idle-conns: 5
 | 
					  max-idle-conns: 5
 | 
				
			||||||
# 若同时部署多台机器,则需要配置redis信息用于缓存权限码、验证码、公私钥等
 | 
					# 若同时部署多台机器,则需要配置redis信息用于缓存权限码、验证码、公私钥等
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user