www.cnblogs.com Open in urlscan Pro
2400:3200:1300::e70  Public Scan

URL: https://www.cnblogs.com/Glucklichste/p/10552561.html
Submission: On September 30 via api from US — Scanned from DE

Form analysis 1 forms found in the DOM

GET https://zzk.cnblogs.com/s

<form id="zzk_search" class="navbar-search dropdown" action="https://zzk.cnblogs.com/s" method="get" role="search">
  <input name="w" id="zzk_search_input" placeholder="代码改变世界" type="search" tabindex="3" autocomplete="off">
  <button id="zzk_search_button" onclick="window.navbarSearchManager.triggerActiveOption()">
    <img id="search_icon" class="focus-hidden" src="//common.cnblogs.com/icons/search.svg" alt="搜索">
    <img class="hidden focus-visible" src="//common.cnblogs.com/icons/enter.svg" alt="搜索">
  </button>
  <ul id="navbar_search_options" class="dropdown-menu quick-search-menu">
    <li tabindex="0" class="active" onclick="zzkSearch(event, document.getElementById('zzk_search_input').value)">
      <div class="keyword-wrapper">
        <img src="//common.cnblogs.com/icons/search.svg" alt="搜索">
        <div class="keyword"></div>
      </div>
      <span class="search-area">所有博客</span>
    </li>
    <li tabindex="1" onclick="zzkBlogSearch(event, 'Glucklichste', document.getElementById('zzk_search_input').value)">
      <div class="keyword-wrapper">
        <img src="//common.cnblogs.com/icons/search.svg" alt="搜索">
        <div class="keyword"></div>
      </div>
      <span class="search-area">当前博客</span>
    </li>
  </ul>
</form>

Text Content

 * 
 * 首页
 * 新闻
 * 博问
 * 会员
 * 闪存
 * 班级

 *  * 
      所有博客
    * 
      当前博客

 * 我的博客 我的园子 账号设置 简洁模式 ... 退出登录
   注册 登录

Gesündeste


随笔- 44  文章- 4  评论- 1  阅读- 64000 
博客园    首页    新随笔    联系   管理    订阅 
docker容器自动化部署(一)

1、docker容器暴露多个端口

  To expose just one port, this is what you need to do:

  docker run -p <host_port>:<container_port>

 

  To expose multiple ports, simply provide multiple -p arguments:

  docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>

  或者你可以直接桥接网络,然后在dockerfile上面直接expose你所需要的端口,这样可以免去-p参数

 

2、gitlab-runner自动化部署

  3.1、注册runner

    命令:sudo gitlab-ci-multi-runner register
       

➜  ~ sudo gitlab-ci-multi-runner register
Running in system-mode.                            
                                                   
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://193.188.2.40/
Please enter the gitlab-ci token for this runner:
Xyx8EEd4YeaMSLv7Snh7
Please enter the gitlab-ci description for this runner:
[sti-DL]: sdk_AutoDeploy
Please enter the gitlab-ci tags for this runner (comma separated):
sdk_AutoDeploy
Whether to run untagged builds [true/false]:
[false]: true
Whether to lock Runner to current project [true/false]:
[false]: true
Registering runner... succeeded                     runner=Xyx8EEd4
Please enter the executor: shell, docker+machine, docker-ssh+machine, docker-ssh, parallels, ssh, virtualbox, kubernetes, docker:
docker
Please enter the default Docker image (e.g. ruby:2.1):
dockerName:v1.0.0
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 



     

    3.2、docker 挂载宿主的GPU驱动、cuda设备文件

  通过gitlab-ci-multi-runner
register注册的Runner配置会存储在/etc/gitlab-runner/config.toml配置文件中,项目中的SDK需要调用英伟达显卡驱动和cuda,通过修改配置文件使得gitlab-runner启动容器时自动加载驱动和cuda。具体配置如下:

  ...
  1)、gitlab-runner启动容器时挂载宿主机驱动的方法

  .gitlab-ci.yml文件
gitlab-runner启动容器默认配置文件是不挂载宿主机上的NVIDIA驱动的,若想gitlab-ci启动容器挂载驱动,可以通过下面的方法:

  修改在*****目录下的config.toml配置文件。
如下:

[[runners]]
  name = "my-runner2"
  url = "http://182.158.10.30/"
  token = "d67392c2aa868f95ddd0256eb42b1b"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "127.0.0.1:5000/rs-sdk-test"
    privileged = false
    devices = ["/dev/nvidia0:/dev/nvidia0","/dev/nvidiactl:/dev/nvidiactl","/dev/nvidia-uvm","/dev/mem:/dev/mem"]
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]




  主要是添加devices一行,gitlabrunner启动的容器就会自动挂载宿主机上的NVIDIA驱动。

  2)、在终端上启动容器挂载驱动和cuda的方法

    sudo docker run -it --name NAME -v /home/:/mnt/home --privileged=true
--device /dev/nvidia-uvm:/dev/nvidia-uvm --device /dev/nvidia0:/dev/nvidia0
--device /dev/nvidiactl:/dev/nvidiactl myconda:cuda bash
    sudo docker run --privileged=true --device /dev/nvidia0:/dev/nvidia0
--device /dev/nvidiactl:/dev/nvidiactl --device /dev/nvidia-uvm:/dev/nvidia-uvm
--device /dev/mem:/dev/mem -it 127.0.0.1:5000/rs-sdk-test:latest

  3.3、在master分支中添加.gitlab-ci.yml

    .gitlab-ci.yml文件的格式有特定的语法规则,详细语法见官方文档。本项目中的.yml文件如下:

    

image: localhost:5000/***:v1.0.0

before_script:
  - echo "hello world!"
stages:
  - build
  - test

job1:
  stage: build
  script:
    - nvidia-smi
    - cat /usr/local/cuda/version.txt
    - export OpenCV_DIR=/opt/ros/kinetic/include/opencv-3.3.1-dev
    - source /opt/ros/kinetic/setup.bash
    - cd /builds/rs_ws_test/
    - ls
    # - sh /builds/rs_ws_test/rs_perception/compileRos.sh
    - cd ~/PerceptionSDK/rs_ws_2.2.0/src
    - ls
    - rm -rf ~/PerceptionSDK/rs_ws_2.2.0/src/rs_perception
    - ls
    # - gnome-terminal -x ~/PerceptionSDK/rs_ws_2.2.0/roscore
    # - gnome-terminal -x ~/PerceptionSDK/rs_ws_2.2.0/rosparam list
    # - gnome-terminal -x ~/PerceptionSDK/rs_ws_2.2.0/rosparam get/rosdistro
    - mv /builds/rs_ws_test/rs_perception ~/PerceptionSDK/rs_ws_2.2.0/src/
    - mv ~/PerceptionSDK/rs_ws_2.2.0/src/rs_perception/tensorRT ~/PerceptionSDK/rs_ws_2.2.0/src/rs_perception/tensorRT10
    - mv ~/PerceptionSDK/rs_ws_2.2.0/src/rs_perception/tensorRT9 ~/PerceptionSDK/rs_ws_2.2.0/src/rs_perception/tensorRT
    - cd ~/PerceptionSDK/rs_ws_2.2.0
    - catkin_make
    - echo "hello world!"
  tags:
    - perception-runner



 

  3.4、写完.yaml配置文件后遇到下面这个问题



    解决方法:搞定在写。。。

 

  

 


分类: Docker
好文要顶 关注我 收藏该文
Gesündeste
粉丝 - 6 关注 - 6



+加关注
0
0


升级成为会员


» 下一篇: boost库中的 program_options
posted on 2019-03-18 16:08  Gesündeste  阅读(1200)  评论(0)  编辑  收藏  举报

弹尽粮绝,会员救园:会员上线,命悬一线
刷新页面返回顶部
登录后才能查看或发表评论,立即 登录 或者 逛逛 博客园首页

【推荐】阿里云-云服务器省钱攻略 :五种权益,限时发放,不容错过



编辑推荐:
· 新零售 SaaS 架构:面向中小连锁的 SaaS 系统整体规划
· 日常 Bug 排查-读从库没有原子性?
· 记一次 .NET 某拍摄监控软件 卡死分析
· 数据库连接池用不了,结果是防火墙的锅
· 优化接口设计的思路系列:接口的权限控制

阅读排行:
· .NET应用如何防止被反编译
· 内网离线安装docker并配置使用nexus为docker私服
· 如何判断一个点在地图上?如何判断一个点在多边形内?
· 卷积导向快速傅里叶变换(FFT/NTT)教程
· 聊聊基于Alink库的推荐系统



< 2023年10月 >

日 一 二 三 四 五 六 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 1 2 3 4 5 6 7 8 9 10 11

昵称: Gesündeste
园龄: 4年6个月
粉丝: 6
关注: 6
+加关注



搜索

 
 


常用链接

 * 我的随笔
 * 我的评论
 * 我的参与
 * 最新评论
 * 我的标签




随笔分类

 * C++(16)
 * caffe(1)
 * DataStructure and Algorithm(1)
 * Deep Learning(6)
 * Docker(1)
 * eigen(2)
 * PCL(1)
 * Python(2)
 * Qt Creator(1)
 * Ros(6)
 * TensorFlow(1)


随笔档案

 * 2020年11月(3)
 * 2020年8月(1)
 * 2020年7月(3)
 * 2020年6月(2)
 * 2020年5月(2)
 * 2020年1月(2)
 * 2019年9月(6)
 * 2019年7月(14)
 * 2019年6月(7)
 * 2019年5月(2)
 * 2019年3月(2)


阅读排行榜

 * 1. octree八叉树数据结构原理与实现(10927)
 * 2. PCL学习之点云可视化:坐标字段、随机、单一颜色、法向量(4723)
 * 3. Qt报错:qt.qpa.xcb: QXcbConnection: XCB error: 8 (BadMatch).....(4705)
 * 4. Eigen: C++开源矩阵计算库(3372)
 * 5. C++ Boost signal2信号/槽函数(3333)


评论排行榜

 * 1. C++类的隐式类型转换运算符operator type()(1)


推荐排行榜

 * 1. octree八叉树数据结构原理与实现(3)
 * 2. 3万字长文带你轻松入门视觉Transformer(1)
 * 3. C++类的隐式类型转换运算符operator type()(1)
 * 4. C++ Boost signal2信号/槽函数(1)


最新评论

 * 1. Re:C++类的隐式类型转换运算符operator type()

 * 第二个程序可以执行吗

 * --汇泉


Copyright © 2023 Gesündeste
Powered by .NET 7.0 on Kubernetes
点击右上角即可分享