• 树莓派中Docker部署.Net Core 3.1 (一)


    一、背景

    受疫情影响,已经在家强制事假一个月了,除了刷简历外就是在家学习,闲来无事,最近买了几个树莓派4B的板子回来,准备用树莓派搭建个自动部署的平台和微服务示例,长话短说,节约时间,直接进入正题吧

    二、树莓派系统安装

    一开始我是在华为云下的centos,后来发现各种问题(无法连接5Gwifi等),毕竟树莓派是arm的cpu,很多东西不没法下,网上找了找,发现Debian-Pi-Aarch64这款系统不错,于是就下载了,有需要的自行下载,地址是:https://gitee.com/openfans-community/Debian-Pi-Aarch64/blob/master/README_zh.md
    我选择的是:基础系统Plus++(无桌面加强版)

    每个版本支持什么请看上图,系统下载好后,烧卡和写入sd卡这一步就不说了,不清楚如何烧卡写sd卡的请自行百度,写完卡后记得在boot盘符里创建一个空的ssh文件,不带后缀,然后找到wpa_supplicant.conf ,自行去掉注释,然后修改成你的wifi密码。
    做完上面的步骤后,将卡插入树莓派,通电启动等待一分钟左右吧,第一次使用系统会自动重启三次,反正我没管,就放那等了一分钟左右的样子,然后通过pc直接ssh连接过去了。
    系统默认账户:pi ,默认密码:raspberry,默认账户pi账户支持ssh登录,root账户密码请登陆后使用命令 “sudo passwd root” 执行设置密码,同时可以修改pi的默认密码,或使用命令 “sudo -i” 来切换到root用户。接着开启Web可视化管理界面、Docker服务、和CecOS CaaS 容器云管理平台 登录界面

    Docker容器

    手动开启:systemctl start docker.service
    手动停止:systemctl stop docker.service
    启用开机启动:systemctl enable docker.service
    禁用开机启动:systemctl disable docker.service
    

    CecOS CaaS容器云(服务端口:8443)

    手动开启:systemctl start cecos-caas.service
    手动停止:systemctl stop cecos-caas.service
    启用开机启动:systemctl enable cecos-caas.service
    禁用开机启动:systemctl disable cecos-caas.service
    

    WebGUI管理平台(服务端口:9090)

    手动开启:systemctl start cockpit.socket
    手动停止:systemctl stop cockpit.socket
    启用开机启动:systemctl enable cockpit.socket
    禁用开机启动:systemctl disable cockpit.socket
    

    Web SSH客户端(服务端口:4200)

    手动开启:systemctl start shellinabox.service
    手动停止:systemctl stop shellinabox.service
    启用开机启动:systemctl enable shellinabox.service
    禁用开机启动:systemctl disable shellinabox.service
    

    注意:要启用CecOS CaaS容器云服务,必须要先启用和启动docker服务!!
    因为启动了WebGUI管理平台(服务端口:9090),所以个人认为没必要在启动Web SSH客户端(服务端口:4200)了

    相关账号密码

    1.Web可视化管理界面
    登录地址 https://你树莓派的IP地址:9090
    说明:请使用系统默认账户pi登录
    
    2.CecOS CaaS 容器云管理平台 登录界面
    登录地址 https://你树莓派的IP地址:8443
    说明:默认管理账户 admin , 默认密码:password 。请登录后立即修改默认密码!!
    

    特别注意CecOS CaaS 容器云管理平台的默认管理账户 admin , 默认密码:password 。请登录后立即修改默认密码!
    基本上这一步系统已经配置完成。

    三、部署gitlab、Jenkins、Consul

    由于树莓派是arm的cpu,所以如果你想找需要的docker镜像的话可以在 https://hub.docker.com/ 中查找,不过记得在Architectures中勾选ARM和ARM64,这样查出来的镜像文件即为ARM的镜像了,千万别下载x86的了,不然运行起来会报如下错误:

    [91mstandard_init_linux.go:211: exec user process caused "exec format error"
    

    先下ARM64为的gitlab,这里我选择的是ulm0/gitlab(搜索的时候记得勾选“ARM” 和“ARM64”)

    点击进入详情,在左边有docker下载镜像的命令

    docker pull ulm0/gitlab
    

    docker 镜像下载好后,我是直接使用命令进行安装的,命令如下:

    ::安装gitlab
    docker run -d 
    --hostname  gitlab 
    --env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.31.4/'; gitlab_rails['lfs_enabled'] = true;"  
    -p 9443:443 -p 8081:8081 -p 220:220 
    --name gitlab 
    --restart always 
    -v /srv/gitlab/config:/etc/gitlab 
    -v /srv/gitlab/logs:/var/log/gitlab 
    -v /srv/gitlab/data:/var/opt/gitlab 
    ulm0/gitlab
    

    这里的 192.168.31.4 IP是树莓派宿主机的IP,就是你安装好树莓派系统后的ip地址,替换成你自己的IP即可,然后我将将gitlab的443、80和20端口都修改了,其中80和20端口的修改相对较麻烦,先使用命令查看目前的docker容器id

    docker ps -a
    

    然后使用docker exec -it c47cf283915f bash进入到gitlab容器,进入容器后cd进入到/etc/gitlab,cd /etc/gitlab,然后vi gitlab.rb,然后按i,进入到编辑模式,修改如下几处:

    修改gitlab.rb

    路径: /opt/gitlab/etc/gitlab.rb,这个文件用于gitlab如何调用80和8080的服务等。

    ## GitLab URL
    ##! URL on which GitLab will be reachable.
    ##! For more details on configuring external_url see:
    ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
    
    external_url 'http://192.168.31.4:8081'     ##192.168.31.4  IP为树莓派宿主IP,自行修改自己IP
    
    ##! Note: During installation/upgrades, the value of the environment variable
    ##! EXTERNAL_URL will be used to populate/replace this value.
    ##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
    ##! address from AWS. For more details, see:
    ##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
    # external_url 'GENERATED_EXTERNAL_URL'
    
    ################################################################################
    ################################################################################
    ##                Configuration Settings for GitLab CE and EE                 ##
    ################################################################################
    ################################################################################
    
    ################################################################################
    ## gitlab.yml configuration
    ##! Docs: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/gitlab.yml.md
    ################################################################################
    gitlab_rails['gitlab_ssh_host'] = '192.168.31.4'
    # gitlab_rails['gitlab_ssh_user'] = ''
    # gitlab_rails['time_zone'] = 'UTC'
    
    ### Wait for file system to be mounted
    ###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#only-start-omnibus-gitlab-services-after-a-given-filesystem-is-mounted
    # high_availability['mountpoint'] = ["/var/opt/gitlab/git-data", "/var/opt/gitlab/gitlab-rails/shared"]
    
    ### GitLab Shell settings for GitLab
    gitlab_rails['gitlab_shell_ssh_port'] = 220
    # gitlab_rails['gitlab_shell_git_timeout'] = 800
    

    设置gitlab的发送邮箱

    ### GitLab email server settings
    ###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
    ###! **Use smtp instead of sendmail/postfix.**
    
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "发送邮件@qq.com"
    gitlab_rails['smtp_password'] = "发送邮件密码"
    gitlab_rails['smtp_domain'] = "smtp.qq.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    gitlab_rails['gitlab_email_from'] = "发送邮件@qq.com"
    
    ###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
    ###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
    
    修改gitlab 下的nginx

    路径: /var/opt/gitlab/nginx/conf/gitlab-http.conf,这个文件是gitlab内置的nginx的配置文件,里面可以影响到nginx真实监听端口号。

    ###################################
    ##         configuration         ##
    ###################################
    
    server {
      listen *:8081;    ##这里默认是80
    
      server_name 192.168.31.4;  ##这里用树莓派宿主的IP
      ##    其他的配置不变
      ##    ....
      ##    ....
      ##    其他的配置不变
      if ($http_host = "") {
        set $http_host_with_default "192.168.31.4:8081";       ## IP设置为树莓派宿主IP
      }
    

    修改gitlab后,运行gitlab-ctl reconfigure 使其修改后的配置生效。
    最后等待几分钟后,局域网内用另一台电脑访问 http://192.168.31.4:8081/ 即可访问

  • 相关阅读:
    HDU2203
    POJ3616
    堆排序
    POJ1386+欧拉回路
    快速排序(实现)
    HDU3549+FordFulkerson
    POJ2155
    POJ1195
    mysql案例~关于linux服务器本身的优化问题
    mysql案例~mysql主从复制延迟概总
  • 原文地址:https://www.cnblogs.com/landonzeng/p/12624955.html
Copyright © 2020-2023  润新知