当前位置: 首页 > news >正文

完整多端口 Nginx Docker部署 + GitLab Runner注册及标签使用指南

一、准备工作

1,已安装 Docker 和 GitLab Runner

2,GitLab 服务正常运行,拿到注册 Token

3,注册 Runner

执行:

sudo gitlab-runner register \--url "http://你的GitLab地址:端口" \--registration-token "你的注册token"

4,查看配置文件

/etc/gitlab-runner/config.toml

会看到如下:

5、GitLab CI/CD 配置示例(.gitlab-ci.yml)

before_script:- npm config set registry https://registry.npmmirror.comstages:- build- deploybuild-job:stage: buildtags:- deployscript:- npm install- npm run build:prod- docker build -t cantian:latest .deploy-job:stage: deploytags:- deploy-81//主要改这里的script:- docker stop cantian || true- docker rm cantian || true- docker run -d --name cantian -p 81:80 cantian:latest//映射81并启动这个镜像

6、GitLab 配置示例(.nginx.conf)

server {listen 80;# gzip configgzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;gzip_vary on;gzip_disable "MSIE [1-6]\.";root /usr/share/nginx/html;include /etc/nginx/mime.types;location / {try_files $uri /index.html;# 测试}
}

注意*

这里的   listen 80;一定要是80所有的地方都是80只要.gitlab-ci.yml里面是docker run -d --name cantian -p 81:80 cantian:latest//映射81并启动这个镜像就自己回映射到81

7、GitLab 配置示例(Dockerfile)

FROM nginxCOPY ./docker/nginx.conf /etc/nginx/conf.d/default.confCOPY ./dist /usr/share/nginx/html/EXPOSE 80CMD ["nginx", "-g", "daemon off;"]

7、触发 CI 流程

git commit -m "配置cicd"

git push

8、常用命令(服务器上查看状态)

查看 Runner 状态:

sudo gitlab-runner status

查看正在运行的容器:

docker ps

查看容器日志:

docker logs cantian

停止并删除容器:

docker stop cantian
docker rm cantian

查看镜像:

docker images

这样,你就可以完全实现:

  • 不需要在服务器上手动构建镜像

  • 代码推送自动构建并部署

  • 通过端口映射访问服务

http://www.lryc.cn/news/618262.html

相关文章:

  • 从原理到实践:一文掌握Kafka的消息生产与消费
  • Unity:GUI笔记(一)——文本、按钮、多选框和单选框、输入框和拖动条、图片绘制和框绘制
  • 从零部署Nacos:替代Eureka的服务注册与服务发现基础教程
  • WPS文字和Word:不只是表格,段落也可以排序
  • 文字转语音 edge_tts
  • 微内核与插件化设计思想及其在前端项目中的应用
  • PostgreSQL 范围、空间唯一性约束
  • 用 Apache Iceberg 与 Apache Spark 在 Google Cloud 打造高性能、可扩展的数据湖仓
  • Flink运行时的实现细节
  • SQL 语言分类
  • Spark 运行流程核心组件(一)作业提交
  • 数据量暴涨时,抓取架构该如何应对?
  • 开发npm包【详细教程】
  • Bevy渲染引擎核心技术深度解析:架构、体积雾与Meshlet渲染
  • C++Linux八股
  • 08--深入解析C++ list:高效操作与实现原理
  • K8S 节点初始化一键脚本(禁用 SELinux + 关闭 swap + 开启 ipvs 亲测实用)
  • 微前端架构:原理、场景与实践案例
  • 前端JS处理时间,适用于聊天、操作记录等(包含刚刚、x分钟前、x小时前、x天前)
  • Windows已经安装了一个MySQL8,通过修改配置文件的端口号跑2个或多个Mysql服务方法,并注册为系统服务
  • lesson36:MySQL从入门到精通:全面掌握数据库操作与核心原理
  • 嵌入式系统学习Day17(文件编程)
  • 项目实战2——LAMP_LNMP实践
  • 智能化评估体系:数据生产、在线化与自动化的三重奏
  • 解锁 Appium Inspector:移动端 UI 自动化定位的利器
  • 【论文阅读】一种基于经典机器学习的肌电下肢意图检测方法,用于人机交互系统
  • Secure CRT做代理转发
  • 【element树组件】el-tree实现连接线及hover编辑效果
  • ip归属地批量查询脚本
  • 视频输入输出模块介绍和示例