Skip to content

Commit 4674452

Browse files
committed
build(scripts): 优化构建脚本,简化镜像打包流程,支持--proxy构建
1 parent ae0ed9f commit 4674452

File tree

5 files changed

+25
-18
lines changed

5 files changed

+25
-18
lines changed

Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
FROM registry.cn-hangzhou.aliyuncs.com/142vip-infra/node:20.18.0-alpine AS build_base
1010

1111
# 是否配置代理
12-
ARG NEED_PROXY=false
12+
ARG NEED_PROXY_BUILD=false
1313

14-
ENV NODE_OPTIONS --max-old-space-size=200000
14+
ENV NODE_OPTIONS="--max-old-space-size=200000"
1515
# 设置环境变量,支持容器构建时使用layer缓存,参考:https://pnpm.io/zh/docker
1616
ENV PNPM_HOME="/pnpm"
1717
ENV PATH="$PNPM_HOME:$PATH"
@@ -20,11 +20,12 @@ ENV PATH="$PNPM_HOME:$PATH"
2020
#ENV COREPACK_NPM_REGISTRY=https://mirrors.tencent.com/npm/
2121

2222
WORKDIR /apps
23+
2324
COPY . .
2425

2526
# 基于容器自动构建
26-
RUN --mount=type=cache,id=pnpm,target=/pnpm/store sh ./scripts/ci && \
27-
if [ "$NEED_PROXY" = "false" ]; \
27+
RUN --mount=type=cache,id=pnpm,target=/pnpm/store sh ./scripts/ci --ignore-scripts && \
28+
if [ "$NEED_PROXY_BUILD" = "false" ]; \
2829
then \
2930
pnpm build; \
3031
else \

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"@142vip/eslint-config": "0.0.1-alpha.4",
3333
"@142vip/fairy-cli": "0.0.3-alpha.25",
3434
"@142vip/open-source": "0.0.1-alpha.3",
35-
"@142vip/utils": "0.0.1-alpha.47",
35+
"@142vip/utils": "0.0.1-alpha.48",
3636
"@142vip/vuepress": "0.0.1-alpha.17",
3737
"only-allow": "1.2.1",
3838
"simple-git-hooks": "2.13.0",

pnpm-lock.yaml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/build-image

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1-
#!/bin/bash
1+
#!/usr/bin/env node
2+
3+
/**
4+
* Usage:
5+
* - ./scripts/dev oauth-login
6+
*/
7+
8+
import {buildImageMain} from "./core/build-image.js";
9+
10+
void buildImageMain()
211

3-
npx node --loader ts-node/esm --no-warnings scripts/core/build-image.ts
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import { VipDocker, VipGit, VipNodeJS, VipPackageJSON } from '@142vip/utils'
33
/**
44
* 功能:构建Docker镜像
55
*/
6-
async function buildImageMain(): Promise<void> {
6+
export async function buildImageMain() {
77
// 获取package.json文件
8-
const { name, version, description } = VipPackageJSON.getPackageJSON<{ description: string }>()
8+
const { name, version, description } = VipPackageJSON.getPackageJSON()
99

1010
// 镜像地址
1111
const imageName = `${OPEN_SOURCE_ADDRESS.DOCKER_ALIYUNCS_VIP}/docs:${name}-${version}`
@@ -16,7 +16,7 @@ async function buildImageMain(): Promise<void> {
1616
let realImageName = imageName
1717

1818
// 如果version是否为预发布,是预发布则用hash当镜像名
19-
if (VipGit.isPrerelease(version)) {
19+
if (typeof version === 'string' && VipGit.isPrerelease(version)) {
2020
realImageName = `${imageName.split(':')[0]}:${name}-${version}-${gitShortHash}`
2121
}
2222

@@ -25,7 +25,7 @@ async function buildImageMain(): Promise<void> {
2525
imageName: realImageName,
2626
buildArgs: [
2727
// 参数中是否包含 --proxy
28-
['NEED_PROXY', VipNodeJS.getProcessArgv().includes('--proxy')],
28+
['NEED_PROXY_BUILD', VipNodeJS.getProcessArgv().includes('--proxy')],
2929
['APP_NAME', name],
3030
['APP_VERSION', version],
3131
['APP_DESCRIPTION', description],
@@ -41,5 +41,3 @@ async function buildImageMain(): Promise<void> {
4141
progress: 'plain',
4242
})
4343
}
44-
45-
void buildImageMain()

0 commit comments

Comments
 (0)