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:/***: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容器自动化部署(一)的更多相关文章
- 基于Jenkins,docker实现自动化部署(持续交互)
前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...
- 基于Jenkins,docker实现自动化部署(持续交互)【转】
前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...
- springboot docker jenkins 自动化部署并上传镜像
springboot + docker + jenkins自动化部署项目,jenkins.mysql.redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行 1. ...
- Jenkins+Docker+Git 自动化部署
Jenkins+Docker+Git 自动化部署图文教程 https://blog.csdn.net/qq_38252039/article/details/89791247 前言: 通过几天的学习和 ...
- spring boot本地开发与docker容器化部署的差异
spring boot本地开发与docker容器化部署的差异: 1. 文件路径及文件名区别大小写: 本地开发环境为windows操作系统,是忽略大小写的,但容器中区分大小写 2. docker中的容器 ...
- Gogs的Docker容器化部署流程遇到的问题
Gogs的Docker容器化部署流程遇到的问题 最近在学习CI/CD的一些方案,个人比较青睐容器化轻量级.CI方面一开始是想使用gitlab的,但是发现我自己买的服务器配置太低,内存根本不够(大写 ...
- Drools 7.15.0 docker容器方式部署
关于drools的相关介绍就不再赘述了,关于drools网上的资料都很少,或者都有些老了,最近折腾了一下,记录下安装部署的过程,希望能节省下大家的时间. 一.快速部署 1.拉取基础镜像,命令如下: d ...
- 从零搭建docker+jenkins 自动化部署环境
从零搭建docker+jenkins+node.js自动化部署环境 本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker ...
- Docker 容器化部署1小时简单入门
Docker简介 Docker是DotCloud开源的.可以将任何应用包装在Linux container中运行的工具.2013年3月发布首个版本,当前最新版本为1.3.Docker基于Go语言开发, ...
随机推荐
- [NOIP赛前冲刺第一期]初赛基础知识归纳
关于计算机 1.CPU 中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit).它的功能 ...
- 深入浅出Java探针技术1--基于java agent的字节码增强案例
Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...
- Flask实战-留言板-使用Faker生成虚拟数据
使用Faker生成虚拟数据 创建虚拟数据是编写Web程序时的常见需求.在简单的场景下,我们可以手动创建一些虚拟数据,但更方便的选择是使用第三方库实现.流行的python虚拟数据生成工具有Mimesis ...
- nginx 环境不支持thinkPHP
在linux+Nginx+mysql+PHP 新装的服务器下,不支持重写pathinfo功能 . 需要加入这个代码 让Nginx 支持重写功能 location / { if (!-e $reques ...
- flask、tornado、BaseHTTPServer性能简单对比
最近写了一个web应用,分别用flask.tornado.BaseHTTPServer都实现了一次,顺便就对比了一下三者的性能,本结果仅对本次测试负责(这句话很内涵,值得推广). 测试工具用了ab,时 ...
- python开发环境配置和python源码打包生成exe可执行文件
Windows下开发环境准备 1.分别安装:python2和python32.安装Python的集成工具:Anaconda3.安装Pycharm Pycharm设置 设置: File->Sett ...
- centos 安装python3与Python2并存,并解决"smtplib" object has no attribute 'SMTP_SSL'的错误
1.需要先安装python3依赖的包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readli ...
- node一些相关
1.Node node的核心语言是JavaScript ,基于Google的V8引擎. 2.node使用 找到当前文件所在目录 node 文件名.js 直接用绝对路径 在当前目录打开命令窗口 3.n ...
- centos 7安装phantomjs
centos 7安装phantomjs wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_6 ...
- subing用法
sql中substring截取,start位置索引由1开始 c#中substring截取,start位置索引由0开始