mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-02 07:20:24 +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