使用Jenkins构建node项目
- 系统管理 -> 系统配置 -> 全局属性 -> 环境变量 -> 新增键值对
- DOCKER_JENKINS_WORKSPACE : /var/lib/docker/volumes/soft_jenkins_home/_data/workspace
NodeJS配置
Section titled “NodeJS配置”# 下载NodeJS插件# 调整[系统管理 -> 全局工具配置 -> nodeJS 配置]# nodejs 14.15.0Jenkins配置
Section titled “Jenkins配置”- 创建一个自由风格的项目
- 使用gitee作为代码源
- 在 [构建环境] 步骤 添加 [Provide Node & npm bin/ folder to PATH]
- 在[构建]步骤中添加[执行 shell]步骤
pwd
# 删除 dist 的所有内容rm -rf dist
# 安装依赖(非必须)npm install --registry https://registry.npm.taobao.org# 构建项目npm run build:prod
# 删除除 node_modules和dist 以外的所有内容ls | grep -v 'node_modules\|dist' | xargs rm -rf- 在构建步骤中添加[Send files or execute commands over SSH(通过ssh远程执行shell)]步骤
export app_version='1.0'
if [ -z $DOCKER_JENKINS_WORKSPACE ]; then echo "环境变量 DOCKER_JENKINS_WORKSPACE:[$DOCKER_JENKINS_WORKSPACE] 缺失,需配置 DOCKER_JENKINS_WORKSPACE 环境变量(exit -1)" exit -1fi
cd $DOCKER_JENKINS_WORKSPACE/$JOB_NAME
mkdir -p ./nginx/conf.d/# todo 按需调整用户名和组chown -R 1000:1000 ./nginx
# 添加default.conf文件tee ./nginx/conf.d/default.conf <<-'EOF'server { listen 80; listen [::]:80; server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; # 用于解决刷新页面后,显示404的问题 }
}EOF
# 编辑Dockerfile文件echo "FROM nginx:stable-alpine" > Dockerfileecho "MAINTAINER Fa" >> Dockerfileecho "WORKDIR /usr/share/nginx/html" >> Dockerfileecho "RUN rm -rf *" >> Dockerfileecho "ADD ./dist ." >> Dockerfileecho "ADD ./nginx/conf.d/default.conf /etc/nginx/conf.d/" >> Dockerfileecho "EXPOSE 80" >> Dockerfile
# 构建镜像docker build --no-cache -t $JOB_NAME:$app_version .
# 上传镜像到私服docker tag $JOB_NAME:$app_version registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_versiondocker push registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:$app_version
# 删除空镜像docker images | awk '{if($1=="<none>")print $3}' | xargs docker rmi &> /dev/null
# 编辑stack yml文件tee $JOB_NAME.yml <<-'EOF'version: '3.5'services: $JOB_NAME: image: registry.cn-zhangjiakou.aliyuncs.com/fa/$JOB_NAME:${app_version} environment: TZ: "Asia/Shanghai" networks: - middleware deploy: replicas: 1 update_config: parallelism: 1 restart_policy: condition: on-failurenetworks: middleware: external: trueEOF
docker stack up -c $JOB_NAME.yml app --with-registry-auth-
Nginx添加代理配置
-
在conf.d目录中添加mall-admin-web-demo.conf文件
server { listen 80; server_name mall-admin-web-demo.iuin.xyz iuin.xyz;
access_log /var/log/mall-admin-web-demo_access.log; error_log /var/log/mall-admin-web-demo_error.log;
location / { include cors.conf; proxy_set_header Host $host; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://mall-admin-web-demo; }
}# 镜像下载问题,可试这添加--with-registry-auth看看docker stack up -c $JOB_NAME.yml --with-registry-auth app