作业系统: Ubuntu 16.04.4 LTS
sudo apt install docker.io
If you are installing Docker on a Linux-based operating system, ensure you configure Docker so it can be managed as a non-root user
To create the docker group and add your user:
Create the docker group.
$ sudo groupadd docker
Add your user to the docker group.
$ sudo usermod -aG docker $USER
Log out and log back in so that your group membership is re-evaluated.
If testing on a virtual machine, it may be necessary to restart the virtual machine for changes to take effect.
On a desktop Linux environment such as X Windows, log out of your session completely and then log back in.
On Linux, you can also run the following command to activate the changes to groups:
$ newgrp docker
docker network create jenkins
docker run \
--name jenkins-docker \
--rm \
--detach \
--privileged \
--network jenkins \
--network-alias docker \
--env DOCKER_TLS_CERTDIR=/certs \
--volume jenkins-docker-certs:/certs/client \
--volume jenkins-data:/var/jenkins_home \
--publish 2376:2376 \
docker:dind \
--storage-driver overlay2
注:跑jenkins-docker需要dind这个image,可以事先下载,但如果没下载的话执行完这个指令也会自动帮你装上。
官网有详细解释每行作用:https://www.jenkins.io/doc/book/installing/docker/
FROM jenkins/jenkins:2.289.1-lts-jdk11
USER root
RUN apt-get update && apt-get install -y apt-transport-https \
ca-certificates curl gnupg2 \
software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN apt-key fingerprint 0EBFCD88
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable"
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean:1.24.6 docker-workflow:1.26"
docker build -t myjenkins-blueocean:1.1 .
docker run \
--name jenkins-blueocean \
--rm \
--detach \
--network jenkins \
--env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client \
--env DOCKER_TLS_VERIFY=1 \
--publish 8000:8080 \ #将8080 port发布到主机的8000port,让外界可以透过主机上的8000连到container的8080 port
--publish 50000:50000 \ #这行用在当你的主机上有不只一个jenkins服务在跑
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
myjenkins-blueocean:1.1
docker logs containeriD
可以看到secrets,输入这串密码就能进到jenkins dashboard了。我们希望无论建置成功与否,在建置完毕後都能被通知。这个部分透过slack notification来达成。
chat:write
这个选项进入Jenkins的管理页面
要完成基本的自动部署,我们需要先安装以下几个plugin:
先来解释一下webhook的作用。
hostname
查看点选进阶,勾选 Use password authentication, or use a different key
然後将远端主机的 SSH private key 贴在 Key 上
点选 Test Configuration,然而会出现以下错误
因为在此 jenkins 携带主机的 private key 然後 ssh 进入 VPS 中,因此在主机中,我们必须要为自己的 private key 提供一个 public key 接口。
将 VPS 的 public key 复制并贴在 authorized_keys 档案里头
cat ~/.ssh/id_rsa.pub
sudo vim ~/.ssh/authorized_keys
再试一次 Test Configuration,应该就会成功了。
这边的行为, Jenkins 会使用 ssh 通道登入远端主机来进行 CD 操作, 而要建立 ssh 连线, 会需要将我们的 public key 给目标主机, 因此目标主机可以使用 Jenkins 主机提供的 public key 来加密资讯
主机加密後传给 Jenkins, Jenkins 再用 private key 来解密, 同理, Jenkins 也会从主机获取主机 public key, blablabla... 所以一台机器上会有自己的 private key 以及目标主机的 public key, 这种行为就是传说中的, 非对称加密
回到刚刚建立的作业,点选组态以便继续编辑
这样应该就完成了,可以去专案主机专案目录底下git log
看看是不是有把最新commit拉下来。
<<: 【Android/Kotlin】拍照/相簿照片上传到Server
>>: CMoney软件工程师战斗营_期末专题制作_Week 16
Banner 现在因为网路发达加上疫情,网购变得很稀松平常,而在这些购物网站中一定会出现广告的部分,...
前言 来学拖拉事件自己组汉堡包~~ 实作连结 拖拉事件 drag & drop 拖拉事件 D...
初学阶段对错误处理没什麽感觉(尽管几乎所有程序语言书都有这一章节),写的都是不用维护的小专案、没有真...
终於来到最後一天最後一篇啦!!!! 真的好感动QQ 成功完赛了 第三次挑战铁人赛成功~ 每一年都是难...
大家好,我是毛毛。ヾ(´∀ ˋ)ノ 废话不多说开始今天的解题Day~ 46. Permutation...