mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-01 23:10:26 +08:00
ci: 优化镜像构建和docker compose
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -19,3 +19,8 @@
|
||||
.idea
|
||||
.vscode
|
||||
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:
|
||||
mysql:
|
||||
image: "mysql:5.7"
|
||||
image: "mysql:8"
|
||||
container_name: mayfly-go-mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: 111049
|
||||
MYSQL_DATABASE: mayfly-go
|
||||
TZ: Asia/Shanghai
|
||||
volumes:
|
||||
- ./docs/docker-compose/mysql/data/mydir:/mydir
|
||||
- ./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
|
||||
- ./server/docs/docker-compose/mysql/data/mydir:/mydir
|
||||
- ./server/docs/docker-compose/mysql/data/datadir:/var/lib/mysql
|
||||
restart: always
|
||||
|
||||
server:
|
||||
@@ -28,6 +24,8 @@ services:
|
||||
environment:
|
||||
TZ: Asia/Shanghai
|
||||
WAIT_HOSTS: mysql:3306
|
||||
volumes:
|
||||
- ./server/config.yml.example:/mayfly/config.yml
|
||||
depends_on:
|
||||
- mysql
|
||||
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:
|
||||
# 自动升级数据库
|
||||
auto-migration: false
|
||||
host: localhost:3306
|
||||
host: mysql:3306
|
||||
username: root
|
||||
password: 111049
|
||||
db-name: mayfly_go
|
||||
db-name: mayfly-go
|
||||
config: charset=utf8&loc=Local&parseTime=true
|
||||
max-idle-conns: 5
|
||||
# 若同时部署多台机器,则需要配置redis信息用于缓存权限码、验证码、公私钥等
|
||||
|
||||
Reference in New Issue
Block a user