feat: docker compose

This commit is contained in:
mozzie 2023-03-19 23:36:08 +08:00
parent faa7ed18db
commit dd29122199
6 changed files with 114 additions and 6 deletions

36
Dockerfile Normal file
View File

@ -0,0 +1,36 @@
# 拉取的原镜像
FROM node:16.19-alpine AS build
# 创建一个项目文件夹,可自定义
WORKDIR /app
# 将本地文件复制到项目文件夹下
COPY ./apps/server .
# 切换到淘宝镜像,安装依赖比较快
RUN npm set registry https://registry.npm.taobao.org
# 安装依赖
RUN npm install -g pnpm
RUN pnpm i
# 打包项目
RUN pnpm build
# 切换镜像文件, alpine镜像打包后更小
FROM node:16.19-alpine
# 切换工作目录
WORKDIR /app
# 将打包后的的文件复制到docker镜像里
COPY --from=build /app/dist ./dist
COPY --from=build /app/src ./src
COPY --from=build /app/bootstrap.js ./
COPY --from=build /app/package.json ./
# RUN apk add --no-cache tzdata
ENV TZ="Asia/Shanghai"
RUN npm set registry https://registry.npm.taobao.org
# 安装工程依赖
RUN npm install --production
# 设置暴露端口
EXPOSE 7001
# 启动
CMD ["npm", "run", "start"]

View File

@ -4,8 +4,6 @@
"private": true, "private": true,
"sideEffects": false, "sideEffects": false,
"dependencies": { "dependencies": {
"@backset/ui": "workspace:^1.0.0",
"@backset/util": "workspace:^1.0.0",
"@midwayjs/bootstrap": "^3.0.0", "@midwayjs/bootstrap": "^3.0.0",
"@midwayjs/core": "^3.0.0", "@midwayjs/core": "^3.0.0",
"@midwayjs/decorator": "^3.0.0", "@midwayjs/decorator": "^3.0.0",
@ -50,9 +48,6 @@
}, },
"scripts": { "scripts": {
"start": "NODE_ENV=production node ./bootstrap.js", "start": "NODE_ENV=production node ./bootstrap.js",
"dev:be": "cross-env NODE_ENV=local midway-bin dev --ts",
"dev:fe": "cross-env RUNNING_ENV=dev webpack -w",
"build:fe": "cross-env RUNNING_ENV=prod webpack build",
"cov": "midway-bin cov --ts", "cov": "midway-bin cov --ts",
"lint": "mwts check", "lint": "mwts check",
"lint:fix": "mwts fix", "lint:fix": "mwts fix",

View File

@ -0,0 +1,35 @@
import { MidwayAppInfo, MidwayConfig } from '@midwayjs/core';
export default (appInfo: MidwayAppInfo): MidwayConfig => {
return {
typeorm: {
dataSource: {
default: {
/**
*
*/
type: 'mysql',
host: 'mysql',
port: 3307,
username: 'backset',
password: 'backset',
database: 'backset',
synchronize: true, // 如果第一次使用,不存在表,有同步的需求可以写 true注意会丢数据
logging: false,
connectTimeout: 15 * 1000,
// 扫描形式, 配置实体模型 entities: [Photo]
entities: ['**/entity/*.entity{.ts,.js}'],
},
},
},
redis: {
client: {
host: 'redis', // Redis host
port: 26379, // Redis port
password: 'cr654654.',
db: 0,
},
},
} as MidwayConfig;
};

View File

@ -17,7 +17,7 @@ export class User {
@Column({ default: true }) @Column({ default: true })
user_status?: boolean; user_status?: boolean;
@Column({ default: '用户' + Date.now() }) @Column()
display_name?: string; display_name?: string;
@Column({ default: '' }) @Column({ default: '' })

41
docker-compose.yml Normal file
View File

@ -0,0 +1,41 @@
version: "3"
services:
redis:
image: redis
container_name: redis-backset # 容器名称
restart: always
ports:
- "26379:26379"
expose:
- "26379"
command: redis-server --requirepass "cr654654." --port 26379
mysql:
image: mysql:5.7.38
container_name: mysql-backset # 容器名称
restart: always
ports:
- "3307:3307"
expose:
- "3307"
environment:
MYSQL_DATABASE: "backset"
MYSQL_USER: "backset"
MYSQL_PASSWORD: "backset"
MYSQL_ROOT_PASSWORD: "root"
MYSQL_ROOT_HOST: "%"
MYSQL_TCP_PORT: 3307
web:
build: .
restart: always
container_name: backset-server # 容器名称
ports:
- "7001:7001"
links:
- mysql:mysql
- redis:redis
depends_on:
- mysql
- redis

View File

@ -8,6 +8,7 @@
"dev:apps-admin": "cd apps/admin && pnpm dev", "dev:apps-admin": "cd apps/admin && pnpm dev",
"build:web": "cd apps/web && pnpm build", "build:web": "cd apps/web && pnpm build",
"build:admin": "cd apps/admin && pnpm build", "build:admin": "cd apps/admin && pnpm build",
"build:server": "cd apps/server && pnpm build",
"build:pkgs": "pnpm build:ui && pnpm build:util", "build:pkgs": "pnpm build:ui && pnpm build:util",
"build:ui": "cd packages/ui && pnpm build", "build:ui": "cd packages/ui && pnpm build",
"build:util": "cd packages/util && pnpm build" "build:util": "cd packages/util && pnpm build"