ubuntu服务器部署gitlab docker并配置nginx反向代理https访问

  1. 拉取镜像
 docker pull gitlab/gitlab-ce
  1. 运行容器
docker run --detach \--publish 9080:80 --publish 9022:22  --publish 9443:443\--name=gitlab \--restart=always \--volume /home/docker/gitlab/config:/etc/gitlab \--volume /home/docker/gitlab/logs:/var/log/gitlab \--volume /home/docker/gitlab/data:/var/opt/gitlab \--volume /home/docker/gitlab/logs/reconfigure:/var/log/gitlab/reconfigure \--volume /etc/localtime:/etc/localtime:ro\--privileged=true \gitlab/gitlab-ce:latest

说明:

  • --publish指定host和容器的端口映射。为了避免gitlab端口与host nginx冲突,最好都映射一下
  1. 编辑gitlab配置文件

因为挂载,所以不用进入容器就能修改配置文件,

sudo vim /home/docker/gitlab/config/gitlab.rb

修改如下配置并保存:

external_url 'https://你的域名'
nginx['redirect_http_to_https'] = true
# 你需要将你的证书放在 /home/docker/gitlab/config/ssl下
nginx['ssl_certificate'] = "/etc/gitlab/ssl/xxxx.xxxx.com_bundle.crt" 
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/xxxx.xxxx.com.key"
gitlab_rails['gitlab_shell_ssh_port'] = 9022
  1. 修改完配置后,重启容器内gitlab服务
# 停止服务
docker exec gitlab sh -c 'gitlab-ctl stop'# 重新设置gitlab配置
docker exec gitlab  sh -c 'gitlab-ctl reconfigure'# 启动服务
docker exec gitlab  sh -c 'gitlab-ctl start'
  1. Host主机Nginx配置反向代理
## 请求转发到GitLab容器
server {listen       443 ssl;server_name  xxxx.xxxx.com; # 你的域名charset utf-8;access_log  logs/gitlab.access.log;error_log  logs/gitlab.error.log;ssl on;# 服务的证书ssl_certificate /root/cert/xxxx.xxxx.com_bundle.crt;# 服务端keyssl_certificate_key /root/cert/xxxx.xxxx.key;# session超时时间ssl_session_timeout 5m;# 加密算法ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;# 允许SSL协议ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;# 启动加密算法ssl_prefer_server_ciphers on;location /gitlab {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_set_header X-Forwarded-Proto https;proxy_pass https://127.0.0.1:9443;}
}

重启nginx

 nginx -s reload
  1. 浏览器输入https://域名/gitlab访问,会自动跳转到登录页面,不行的话可以多刷新几次试试。
    在这里插入图片描述
  2. 重置初始密码

进入容器

docker exec -it gitlab /bin/bash

登入GitLab后台操作

gitlab-rails console -e productionirb(main):003:0> User.all=> #<ActiveRecord::Relation [#<User id:1 @root>]>irb(main):004:0> user=User.where(id:1).first=> #<User id:1 @root>irb(main):008:0> user.password='12345678'=> "12345678"irb(main):009:0> user.password_confirmation='12345678'=> "12345678"irb(main):010:0> user.save!=> true

登录成功
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/468416.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux_文件系统

假定外部存储设备为磁盘&#xff0c;文件如果没有被使用&#xff0c;那么它静静躺在磁盘上&#xff0c;如果它被使用&#xff0c;则文件将被加载进内存中。故此&#xff0c;可以将文件分为内存文件和磁盘文件。 内存文件 磁盘文件 软、硬链接 一.内存文件 1.1 c语言的文件接口 …

C/C++内存管理:new、delete功能及原理实现

目录 一、C/C内存分布 二、C中内存管理方式 2.1new/delete操作内置类型 2.2 new和delete操作自定义类型 三、operator new与operator delete函数 四、new和delete的实现原理 4.1内置类型 4.2自定义类型 五、定位new 一、C/C内存分布 int globalVar 1; static int sta…

概率分布-离散型概率分布

更多AI技术入门知识与工具使用请看下面链接&#xff1a; https://student-api.iyincaishijiao.com/t/iNSVmUE8/

C++【AVL树】

目录 1.AVL树&#xff08;高度平衡搜索二叉树&#xff09;定义 1.1平衡因子&#xff08;Balance Factor简写成bf&#xff09; 1.2avl树的定义 2.AVL树插入的基本操作 2.1逻辑抽象图 2.2插入流程 2.3左单旋 2.4右单旋 2.5右左双旋 2.6左右双旋 3.AVL树的检验技巧 3.1…

LeetCode、901. 股票价格跨度【中等,单调栈】

文章目录 前言LeetCode、901. 股票价格跨度【中等&#xff0c;单调栈】题目链接及分类思路思路1&#xff1a;暴力思路2&#xff1a;单调栈写法优化&#xff1a;单调栈简化写法(数组替代栈集合) 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、…

力扣精选算法100道——【模板】前缀和 (二维)

目录 &#x1f388;题目解析 &#x1f388;算法原理 &#x1f388;实现代码 二维前缀和【模板】 &#x1f388;题目解析 上一题我们讲述了一维的前缀和求法。 第一行三个参数&#xff0c;n是行数3&#xff0c;m是列数4&#xff0c;q3代表查询次数 接下来就是n行m列的矩阵…

《Java 简易速速上手小册》第5章:Java 开发工具和框架(2024 最新版)

文章目录 5.1 Maven 和 Gradle - 构建你的堡垒5.1.1 基础知识5.1.2 重点案例&#xff1a;使用 Maven 构建一个简单的 Java 应用5.1.3 拓展案例 1&#xff1a;使用 Gradle 构建一个 Spring Boot 应用5.1.4 拓展案例 2&#xff1a;使用 Maven 管理多模块项目 5.2 Spring 框架 - 你…

【数据分享】2000~2018年青藏高原0.05°逐日积雪深度数据集

各位同学们好&#xff0c;今天和大伙儿分享的是2000~2018年青藏高原0.05逐日积雪深度数据集。如果大家有下载处理数据等方面的问题&#xff0c;可以添加我的微信交流~ 闫大江, 马宁, 张寅生. (2021). 青藏高原0.05逐日积雪深度数据集&#xff08;2000-2018&#xff09;. 国家青…

Java并发基础:PriorityBlockingQueue全面解析!

内容概要 PriorityBlockingQueue类能高效处理优先级任务&#xff0c;确保高优先级任务优先执行&#xff0c;它内部基于优先级堆实现&#xff0c;保证了元素的有序性&#xff0c;同时&#xff0c;作为BlockingQueue接口的实现&#xff0c;它提供了线程安全的队列操作&#xff0…

[缓存] 1. 缓存共性问题

1. 缓存的作用 为什么需要缓存呢&#xff1f;缓存主要解决两个问题&#xff0c;一个是提高应用程序的性能&#xff0c;降低请求响应的延时&#xff1b;一个是提高应用程序的并发性。 2. 缓存的分类 本地缓存&#xff0c;分布式缓存 3. 缓存数据分类 3.1 数据缓存 程序数据直接…

Linux_环境变量_命令行参数

一.环境变量 在Linux中自己写的程序必须要带路径才能运行&#xff0c;相对路径或是绝对路径&#xff0c;但是像ls pwd这样的程序&#xff0c;不带路径也能运行。当你想要运行一个程序时&#xff1a; 如果带有路径的话&#xff0c;则直接将对应路径的程序加载进内存&#xff0…

七天入门大模型 :提示词工程 Prompt Engineering,最全的总结来了!

文章目录 技术交流群用通俗易懂方式讲解系列引 言LLM 的超参配置Prompt Engineering指令主要内容少样本学习更加明确的提示善用分隔符思维链提示对输出格式的明确要求 最佳实践案例1. Agent场景&#xff1a;使用prompt实现agent create2. Agent场景&#xff1a;使用system mess…