ci: 添加 Woodpecker CI/CD 流水线
- 安装依赖、构建前端 - 构建 Docker 镜像并部署 - 环境变量和网络管理
This commit is contained in:
@@ -0,0 +1,52 @@
|
|||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: [main, master]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
install-deps:
|
||||||
|
image: node:22-alpine
|
||||||
|
commands:
|
||||||
|
- npm ci
|
||||||
|
|
||||||
|
build-frontend:
|
||||||
|
image: node:22-alpine
|
||||||
|
commands:
|
||||||
|
- npm run build
|
||||||
|
depends_on:
|
||||||
|
- install-deps
|
||||||
|
|
||||||
|
build-image:
|
||||||
|
image: docker
|
||||||
|
commands:
|
||||||
|
- docker build -t likedream-web:latest .
|
||||||
|
- docker tag likedream-web:latest likedream-web:${CI_COMMIT_SHA:0:8}
|
||||||
|
depends_on:
|
||||||
|
- build-frontend
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
image: docker
|
||||||
|
commands: |
|
||||||
|
# 确保网络存在
|
||||||
|
docker network create likedream-net 2>/dev/null || true
|
||||||
|
|
||||||
|
# 停止并删除旧容器
|
||||||
|
docker stop likedream-web 2>/dev/null || true
|
||||||
|
docker rm likedream-web 2>/dev/null || true
|
||||||
|
|
||||||
|
# 启动新容器
|
||||||
|
docker run -d \
|
||||||
|
--name likedream-web \
|
||||||
|
--restart unless-stopped \
|
||||||
|
--network likedream-net \
|
||||||
|
-p 3000:3000 \
|
||||||
|
-e BACKEND_URL=http://likedream-go:8091 \
|
||||||
|
likedream-web:latest
|
||||||
|
depends_on:
|
||||||
|
- build-image
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
when:
|
||||||
|
event: [push, tag]
|
||||||
|
branch: [main, master]
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
services:
|
||||||
|
likedream-web:
|
||||||
|
image: likedream-web:latest
|
||||||
|
container_name: likedream-web
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
environment:
|
||||||
|
- BACKEND_URL=http://likedream-go:8091
|
||||||
|
networks:
|
||||||
|
- likedream-net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
likedream-net:
|
||||||
|
external: true
|
||||||
Reference in New Issue
Block a user