docker+nginx+jenkins部署前端应用

准备工具

  • 下载 -> 安装 -> 部署 jenkins
  • 安装docker简介
  • linux基本操作命令 (cp、mv、apt-get、yum)

一、下载安装docker

  1. 下载安装docker https://www.docker.com/get-started
  2. 安装portainer,管理docker容器的工具
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
  1. 访问本地9000端口,手动创建nginx和jenkins容器

二、配置ssh (SSH是一种网络协议,用于计算机之间的加密登录)

  • 安装 openssh-server
apt-get update //更新apt-get资源
apt-get install openssh-server //安装ssh服务
  • ssh-keygen
jenkins@jenkins:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/jenkins_home/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/jenkins_home/.ssh/id_rsa.
Your public key has been saved in /var/jenkins_home/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:1/Zkmg3ROmqXyV9xv3yLuKB1sPA9pArrAfvO1JfMzO8 jenkins@jenkins
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|             .   |
|            . .  |
|           . o   |
|   .   .S...* o..|
|    o . B.B+ %  +|
|   . + . &o+B o o|
|    + + =.+.o.o.o|
|    o* o  .E...+o|
+----[SHA256]-----+
  • 拷贝公钥到目标容器
cd ~/.ssh/

cat id_rsa.pub >> authorized_keys // 创建授权文件

chmod 600 authorized_keys //修改权限
chmod 700 ~/.ssh/ //修改权限

vim /etc/ssh/sshd_config    // 编辑ssh配置文件

RSAAuthentication yes       //加密授权
PubkeyAuthentication yes    // 公钥授权
PermitRootLogin yes         //root用户能通过SSH登录

esc -> shift+: -> (wq (保存退出) q (退出不保存)) 

service ssh restart // 重启ssh服务

docker container ls //查看容器列表

 ✘ sword@sword  ~/Desktop  docker container ls
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                              NAMES
b0cd5ce116a7        jenkins/jenkins:lts   "/sbin/tini -- /us..."   10 hours ago        Up 10 hours         0.0.0.0:50000->50000/tcp, 0.0.0.0:9999->8080/tcp   jenkins
f615314f4fcc        nginx:latest          "nginx -g 'daemon ..."   10 hours ago        Up 10 hours         0.0.0.0:8899->80/tcp, 0.0.0.0:8443->443/tcp        nginx
4f99cd6cdde9        portainer/portainer   "/portainer"             11 hours ago        Up 10 hours         0.0.0.0:9000->9000/tcp                             portainer

// 进入jenkins容器
// mac 
docker exec -it b0cd5ce116a7 bash
// win
docker exec -it b0cd5ce116a7 powershell

// 查看公钥
jenkins@jenkins:/$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCS8KJ5GMBPXrpz98HZCXwFMy2rmprd/HumNFHNDoBSE94QvBYIBRpWjNC07yJwnSqS4kj+4VoVSViUArwX+yMutVvLwzNwWoaZft7+2YYryi5fUNwU5QmM+ang0nCNI53FECvGiqSkxPXeSAIU+OWyl2z1JjFzlI1J/KobQZCoSIMqd7PZHbVv5KoB6MPYPxyVHnSjcxDTVq2LKr8kSpXuJo5cfais614jk1KeDe+vu6Ap7F2p18cYVZJChbNwz66W7YvS/MGPBu6+qceuCZNokIPtKkV7u//9Ign+OVsExA6Q+5RUbgTTgBdGnk5s9RrhMorGkVyebGm1sL8pnWHx jenkins@jenkins

// 复制公钥到nginx容器上
// 进入jenkins容器
// mac 
docker exec -it b0cd5ce116a7 bash
// win
docker exec -it b0cd5ce116a7 powershell
// 编辑authorized_keys文件
vim ~/.ssh/authorized_keys
// 查看授权公钥
root@nginx:~# cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChXbjgOoOH1r+L5vHXd1hzlZSGhyEj4h1LBPR7NUCA0gX/eiVIIwW5oZgY9Ow7vuVTxB5m93X/phVEYctFgDp6QpLNL/Ege2TBRR2s2VvNYVUTLTOiGgRKEvUEpZCoGoN3b+zjYkz9tGsp1HJ5XJUCQo8QjcIlH+W4iHKzkH1v9KUgstx6rr3fbpKkqRYh5cGDqQ0t5aXycJSQYukMezvr4qk+Q88O0ITOxYfv3oC4F6jciNzusvF3CLqZtlB4w7OvexeQz3eDrAILq5iW+neF1SLczrPpC2aSjl1RG5fPJ8s4ZLkdMo222IzB4Uugne/dm6U2HWmyLbg5uQzzEeo3 root@nginx
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCS8KJ5GMBPXrpz98HZCXwFMy2rmprd/HumNFHNDoBSE94QvBYIBRpWjNC07yJwnSqS4kj+4VoVSViUArwX+yMutVvLwzNwWoaZft7+2YYryi5fUNwU5QmM+ang0nCNI53FECvGiqSkxPXeSAIU+OWyl2z1JjFzlI1J/KobQZCoSIMqd7PZHbVv5KoB6MPYPxyVHnSjcxDTVq2LKr8kSpXuJo5cfais614jk1KeDe+vu6Ap7F2p18cYVZJChbNwz66W7YvS/MGPBu6+qceuCZNokIPtKkV7u//9Ign+OVsExA6Q+5RUbgTTgBdGnk5s9RrhMorGkVyebGm1sL8pnWHx jenkins@jenkins

三、配置jenkins

  • 查看jenkins映射的端口号


    image.png
  • 访问 localhost:9999

  • jenkins配置nodejs


    image.png

    image.png

    image.png

    image.png

    image.png
  • jenkins配置git仓库


    image.png

    image.png

    image.png

    image.png

    image.png

    image.png
  • 使用 jenkins shell


    image.png

    image.png
rm -rf node_modules && npm i
npm run build
ssh -t root@172.17.0.3 "mkdir /usr/share/nginx/html/demo"  // -t 不显示终端,只显示连接成功信息
scp -r ./build/* root@172.17.0.3:/usr/share/nginx/html/demo  

四、配置nginx

找到nginx容器的id

image.png
注:nginx有默认的配置文件在 /etc/nginx/conf.d/default.conf ,这里要删掉,用我们自己的/etc/nginx/nginx.conf
rm  /etc/nginx/conf.d/default.conf 

vim /etc/nginx/nginx.conf

// 在server结构中新增
server {
    listen 80; //监听的端口号
    
    // 匹配访问路径
    location / {
       root   /usr/share/nginx/html/demo; // 项目的路径
       try_files $uri /index.html /index.htm /index; // 要访问的文件名
   }
}

****** 编辑完成后执行
nginx -s reload //重新载入配置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260