共计 1961 个字符,预计需要花费 5 分钟才能阅读完成。
本文记录了我在 Jenkins CI/CD 中部署 Node、Java 项目,以及在 Docker 中运行 Kafka、EMQX 等服务的过程,包括踩坑和解决方案。
适合刚搭建 CI/CD 流水线、需要同时构建前后端的朋友参考。
bash复制编辑docker run -d --name jenkins -u root \
-p 8090:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/jenkins_home:/var/jenkins_home \
my-jenkins:latest
✅ 挂载 /var/run/docker.sock 可以让 Jenkins 容器直接调用宿主机 Docker 引擎。
.m2 缓存:bash复制编辑-v /root/.m2:/var/jenkins_home/.m2
在 Dockerfile 中安装:
dockerfile复制编辑RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \
&& npm install -g yarn
Jenkins 页面安装 NodeJS Plugin:
xml复制编辑<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.12.0</version>
<executions>
<execution>
<id>yarn install</id>
<goals><goal>yarn</goal></goals>
</execution>
<execution>
<id>build</id>
<goals><goal>yarn</goal></goals>
<configuration>
<arguments>build</arguments>
</configuration>
</execution>
</executions>
</plugin>
perl复制编辑[Error: ENOENT: no such file or directory, lstat '/target/thingsboard-web-ui-linux']
原因:打包路径不存在。
解决:
bash复制编辑mkdir -p ./target/src
yarn build
pkg ...
bash复制编辑i/o timeout
解决:
bash复制编辑docker build --network host ...
bash复制编辑docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_CFG_PROCESS_ROLES=broker,controller \
-e ALLOW_PLAINTEXT_LISTENER=yes \
bitnami/kafka:latest
bash复制编辑docker run -d --name emqx \
-p 18083:18083 -p 1883:1883 \
emqx:latest
默认账号密码:
admin / public
less复制编辑[ GitHub/GitLab ]
↓
[ Jenkins 容器 ]
| Node 构建前端
| Maven 构建后端
↓
[ Docker Build 镜像 ]
↓
[ 部署到服务器/云平台 ]
💡 总结
共计 1961 个字符,预计需要花费 5 分钟才能阅读完成。
本文记录了我在 Jenkins CI/CD 中部署 Node、Java 项目,以及在 Docker 中运行 Kafka、EMQX 等服务的过程,包括踩坑和解决方案。
适合刚搭建 CI/CD 流水线、需要同时构建前后端的朋友参考。
bash复制编辑docker run -d --name jenkins -u root \
-p 8090:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/jenkins_home:/var/jenkins_home \
my-jenkins:latest
✅ 挂载 /var/run/docker.sock 可以让 Jenkins 容器直接调用宿主机 Docker 引擎。
.m2 缓存:bash复制编辑-v /root/.m2:/var/jenkins_home/.m2
在 Dockerfile 中安装:
dockerfile复制编辑RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \
&& npm install -g yarn
Jenkins 页面安装 NodeJS Plugin:
xml复制编辑<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.12.0</version>
<executions>
<execution>
<id>yarn install</id>
<goals><goal>yarn</goal></goals>
</execution>
<execution>
<id>build</id>
<goals><goal>yarn</goal></goals>
<configuration>
<arguments>build</arguments>
</configuration>
</execution>
</executions>
</plugin>
perl复制编辑[Error: ENOENT: no such file or directory, lstat '/target/thingsboard-web-ui-linux']
原因:打包路径不存在。
解决:
bash复制编辑mkdir -p ./target/src
yarn build
pkg ...
bash复制编辑i/o timeout
解决:
bash复制编辑docker build --network host ...
bash复制编辑docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_CFG_PROCESS_ROLES=broker,controller \
-e ALLOW_PLAINTEXT_LISTENER=yes \
bitnami/kafka:latest
bash复制编辑docker run -d --name emqx \
-p 18083:18083 -p 1883:1883 \
emqx:latest
默认账号密码:
admin / public
less复制编辑[ GitHub/GitLab ]
↓
[ Jenkins 容器 ]
| Node 构建前端
| Maven 构建后端
↓
[ Docker Build 镜像 ]
↓
[ 部署到服务器/云平台 ]
💡 总结