
venturatravel/website-baseweb-build-base 是一个专为网站项目构建流程设计的基础Docker镜像,基于Alpine Linux发行版构建,集成了主流网站开发所需的构建工具链与依赖环境。该镜像旨在提供标准化、一致性的构建环境,消除因开发/部署环境差异导致的"在我这能跑"问题,适用于各类网站项目(前端、静态站点、需编译的后端网站等)的构建阶段。
apk add或自定义Dockerfile扩展工具链,满足特殊项目需求(如添加Java、Go等编译环境)。npm run build)。bash# 拉取最新稳定版 docker pull web-build-base:latest # 拉取特定版本(如Node.js 20.x分支) docker pull web-build-base:node20
将宿主机项目目录挂载至容器内,执行构建命令:
bash# 假设项目目录为 ./my-web-project,构建命令为 npm run build docker run -it --rm \ -v $(pwd)/my-web-project:/app \ # 挂载项目目录至容器/app -v $(pwd)/build-cache:/tmp/cache \ # 挂载缓存目录(可选,加速依赖安装) -e NODE_ENV=production \ # 设置环境变量(如生产环境构建) web-build-base:latest \ sh -c "cd /app && npm install && npm run build" # 执行构建流程
创建docker-compose.yml:
yamlversion: '3.8' services: build: image: web-build-base:latest volumes: - ./my-web-project:/app:rw # 项目目录(读写权限) - build-cache:/tmp/cache:rw # 持久化缓存卷 environment: - NODE_VERSION=20.10.0 # 指定Node.js版本(可选,默认LTS) - BUILD_OUTPUT_DIR=/app/dist # 构建输出目录(可选,默认/app/build) command: > sh -c "cd /app && yarn install --cache-folder /tmp/cache/yarn && yarn run build && cp -r ${BUILD_OUTPUT_DIR} /app/built" # 构建后复制输出到宿主机 volumes: build-cache: # 声明缓存卷(持久化,避免每次重建缓存)
启动构建:
bashdocker-compose run --rm build
| 参数名 | 描述 | 默认值 | 可选值示例 |
|---|---|---|---|
NODE_VERSION | 指定Node.js版本 | 20.10.0(LTS) | 18.18.0、21.6.0 |
NODE_ENV | Node.js运行环境 | development | production、test |
BUILD_CACHE_DIR | 构建缓存根目录 | /tmp/cache | /app/.cache |
BUILD_OUTPUT_DIR | 构建结果输出目录 | /app/build | /app/dist、/app/public |
ENABLE_RUBY | 是否启用Ruby环境(静态站点用) | false | true(启用Ruby+gem) |
ENABLE_PYTHON | 是否启用Python环境 | false | true(启用Python3+pip) |
如需添加镜像未预装的工具(如Go编译器),可通过Dockerfile基于本镜像构建自定义镜像:
dockerfile# 自定义镜像 Dockerfile FROM web-build-base:latest # 安装Go 1.21(示例) RUN apk add --no-cache go=1.21.5-r0 && \ go version # 验证安装 # 设置Go环境变量 ENV GOPATH=/go \ PATH=$PATH:/go/bin
构建自定义镜像:
bashdocker build -t my-custom-web-build .
/tmp/cache至宿主机目录或命名卷,避免重复下载依赖(如node_modules),提升构建效率。root用户,如宿主机项目目录权限严格,可通过-u $(id -u):$(id -g)指定用户ID,避免文件权限冲突。node20)而非latest,确保构建环境稳定性。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务