docker gitlab gitalb-runner实现自动化部署
2022/2/27 6:21:44
本文主要是介绍docker gitlab gitalb-runner实现自动化部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Docker Gitlab Gitalb-runner 实现自动化部署
前言
默认已经安装过 docker 和 docker-compose ,官网有教程,很详细
注意:gitlab 很耗内存,如果你内存只有 2G 左右会出现问题
之前有用 docker 部署过 gitlab-runner 和 gitlab 的话要把所有挂载的文件删掉,可能会影响到本次容器部署
废话少说,直接开始
用 Docker 部署 gitlab
1、搜索镜像
用 docker search gitlab
搜索一个常用的镜像
这里使用 gitlab/gitlab-ce
2、运行容器
编写 docker-compose.yml
文件将容器运行
version: "3" services: gitlab: container_name: gitlab image: `gitlab/gitlab-ce` hostname: '{没有域名填写服务器 ip}' ports: - "10022:22" - "10080:10080" - "10443:10443" volumes: - "{自定义路径}/gitlab/data:/var/opt/gitlab" - "{自定义路径}/gitlab/config:/etc/gitlab" - "{自定义路径}/gitlab/log:/var/log/gitlab" privileged: true
输入 docker-compose up -d
运行容器
3、修改配置文件
修改 gitlab.rb
文件,在 {自定义路径}/gitlab/config
路径下
添加以下配置
external_url 'http://{你的 ip 或者域名}:10080 gitlab_rails['gitlab_shell_ssh_port'] = 10022
或者修改配置文件里的配置也可以
4、访问 gitlab 并设置密码
在浏览器输入 http://{你的 ip 或者域名}:10080
访问 gitlab,第一次会让设置密码,用户名为 root
如果访问失败或者 502 就再等等,这东西启动贼慢
用 Docker 部署 gitlab-runner
1、搜索镜像
用 docker search gitlab-runner
搜索一个常用的镜像
这里使用 gitlab/gitlab-runner
2、运行 gitlab-runner
version: "3" services: gitlab-runner: container_name: gitlab-runner image: gitlab/gitlab-runner volumes: - "{自定义路径}/gitlab-runner-config:/etc/gitlab-runner" - "/var/run/docker.sock:/var/run/docker.sock" environment: - "CA_CERTIFICATES_PATH=/DIR/CERT" restart: always
编写好 docker-compose.yml
后输入 docker-compose up -d
运行
新建项目并且注册 gitlab-runner
1、新建仓库,并新建 SpringBoot 项目上传
访问 gitlab 创建一个新的仓库
点击 Create project 创建
用 IDEA 创建一个新的 SpringBoot 项目
写好一个测试接口
@GetMapping("test") public String test() { return "test" }
在项目根目录右击 Git Bash
输入以下命令
git init git remote add origin 你的项目地址 git add . git commit -m "Initial commit" git push -u origin master
2、注册 gitlab-runner
在服务器输入,docker exec -it gitlab-runner gitlab-runner register
根据提示依次输入
url 和 token 需要进入项目,选择 Setting -> CI/CD -> Runner,获取 url 和 token
注册成功后进入 gitlab-runner 的配置路径下,找到 config.toml 文件
修改添加这三行代码
3、编写 Dockerfile、docker-compose.yml 和 .gitlab-ci.yml 文件,完成自动部署
首先需要制作一个 maven + jdk8 的镜像
Dockerfile:
FROM openjdk:8u171 FROM maven:3.6.3-openjdk8 # 可以上 docker hub 上搜索自己需要的版本
写好后执行 docker build -t maven-build .
生成镜像
之后在SpringBoot项目的根路径下编写以下三个文件
Dockerfile:
# jdk8 FROM openjdk:8u171 COPY ./target/{你的项目名}-0.0.1-SNAPSHOT.jar /home/ WORKDIR /home EXPOSE {你需要暴露的端口} ENTRYPOINT ["java", "-jar", "{你的项目名}-0.0.1-SNAPSHOT.jar"] CMD ["/bin/bash"]
docker-compose.yml:
version: "3" services: spring-boot-practice: build: context: . dockerfile: Dockerfile container_name: spring-boot-test image: spring-boot-test ports: - "{服务器}:{容器}"
.gitlab-ci.yml:
image: docker:stable variables: MAVEN_OPTS: "-Dmaven.repo.local=${CI_PROJECT_DIR}/.m2" MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode" cache: key: ${CI_COMMIT_REF_SLUG} # cache is for per branch paths: # 使用自行配置的 settings.xml,在项目根路径下创建.m2文件夹,添加 settings.xml - ${CI_PROJECT_DIR}/.m2 build-job: image: maven-build tags: - {你注册 runner 填写的 tags} stage: build script: - pwd - ls - mvn $MAVEN_CLI_OPTS clean package artifacts: paths: - target/{你的项目名}-0.0.1-SNAPSHOT.jar test-job: tags: - {你注册 runner 填写的 tags} stage: test script: - echo "This job tests something" deploy-prod: image: docker-compose tags: - {你注册 runner 填写的 tags} stage: deploy script: - docker build -t spring-boot-test . - docker-compose up -d - docker images|grep none|awk '{print $3 }'|xargs docker rmi
修改 SpringBoot 项目接口
@GetMapping("test") public String test() { return "gitlab-ci" }
提交代码后耐心等待
部署成功后访问测试接口,显示 gitlab-ci
自动部署成功!
这篇关于docker gitlab gitalb-runner实现自动化部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Docker端口:你真的公开了哪些东西?
- 2024-11-14用DOCKER在家里的实验室里搞些酷炫的玩意儿
- 2024-11-05掌握Docker:高效安全的十大最佳实践
- 2024-11-05在 Docker Compose 中怎么设置端口映射-icode9专业技术文章分享
- 2024-11-05在 Docker Compose 中怎么设置环境变量-icode9专业技术文章分享
- 2024-11-04Docker环境部署项目实战:新手入门教程
- 2024-11-04Docker环境部署资料:新手入门教程
- 2024-11-01Docker环境部署教程:新手入门指南
- 2024-11-01超越Docker:苹果芯片上的模拟、编排和虚拟化方案讲解
- 2024-11-01Docker环境部署:新手入门教程