No.1 dotnetcore&docker--环境搭建
基础环境搭建,包含docker可运行环境 gitlab代码仓库,harbor镜像仓库。gitlab和harbor 运行在linux的主机上,程序服务通过docker来搭建。centos用7.5
一、docker环境搭建
yum update -y
yum install -y vim wget
yum remove docker docker-common docker-selinux docker-engine #删除旧的引用
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装软件包
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #配置仓库地址
yum list docker-ce --showduplicates | sort -r #检查docker版本,可以查看一下现在最新版本有哪一些
yum install docker-ce -y #安装最新版本
#启动docker并且开机启动
systemctl start docker
systemctl enable docker
docker安装好之后,安装一个web管理后台,来可视化操作一些东西。才用portainer管理。
docker pull portainer/portainer #拉取镜像
docker volume create portainer_data #创建数据卷
docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer #启动容器
然后通过 http://112.74.100.3:9000访问,进入之后,设置管理员密码,选择local本机模式,进入首页。
安装compose
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install --upgrade setuptools
pip install docker-compose
docker-compose version
使用goharbor搭建harbor.https://github.com/goharbor/harbor/releases
必须用离线版本,下载要很久。我用的是1.9.1版本。
cd ~
wget https://github.com/goharbor/harbor/releases/download/v1.9.1/harbor-offline-installer-v1.9.1.tgz
tar -zxvf harbor-offline-installer-v1.9.1.tgz
cd harbor
vim harbor.yml #进入修改密码
./install.sh #安装
上面的nginx监听了80端口,转到harbor 管理页面。没有更改密码的话,密码是Harbor12345
三、安装gitlab
通过compose安装,在portainer里面就是用Stacks。
新增一个gitlab的statcks 。其中网络选择了跟harbor一个局域网,这样方便互相访问,也可以不用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | version: '2' services: gitlab: image: 'twang2218/gitlab-ce-zh:9.4' restart: always hostname: 'gitlab' network_mode: harbor_harbor environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.ivinbo.com' gitlab_rails[ 'gitlab_shell_ssh_port' ] = 2022 #unicorn['port'] = 8888 nginx[ 'listen_port' ] = 80 ports: - '2080:80' - '20443:443' - '2022:22' volumes: - vm-git-etc:/etc/gitlab - vm-git-opt:/ var /opt/gitlab - vm-git-log:/ var /log/gitlab |
稍等一段时间,就可以访问了,通过ip端口就可以访问后台了。
如果要实用域名的话,就要购买 https证书,然后cd /root/harbor/common/config/nginx 进入修改nginx的配置。
nginx的配置去哪里修改,通过查看nginx容器的容器卷得到,这里已经安装了一个nginx容器,就不需要额外安装了。
harbor和gitlab的具体使用,不再教授。
至于其他发服务器,需要使用harbor和gitlab的话,通常需要https结合证书,如果需要的购买一个。需要给harbor配置证书的话,就直接配置在nginx.conf配置文件上。如何配置,不再指导。配置好的内容,记得备份下来保存。
假如需要gitlab的nginx配置,如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | server { listen 8443 ssl; server_name gitlab.xxx.com; #access_log /var/log/nginx/gitlab.log; ssl_certificate /etc/cert/gitlab.ivinbo.com.crt; ssl_certificate_key /etc/cert/gitlab.ivinbo.com.key; #add_header Access-Control-Allow-Origin *; #add_header Access-Control-Allow-Headers X-Requested-With; #add_header Access-Control-Allow-Methods GET,POST,OPTIONS; location / { proxy_pass http: //gitlab_gitlab_1:80/; proxy_set_header Host $http_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 $scheme; client_max_body_size 500m; proxy_buffering off; proxy_request_buffering off; #proxy_http_version 1.1; #proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection $http_connection; #proxy_set_header Origin * ; } } server { listen 8080; server_name gitlab.xxx.com; #access_log /var/log/nginx/gitlab.log; location / { proxy_pass http: //gitlab_gitlab_1:80/; proxy_set_header Host $http_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 $scheme; client_max_body_size 500m; proxy_buffering off; proxy_request_buffering off; #proxy_http_version 1.1; #proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection $http_connection; #proxy_set_header Origin * ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述