docker 安装jdk_手把手教你利用Docker+jenkins部署你的网站

news/2024/5/9 20:49:25/文章来源:https://blog.csdn.net/weixin_39956350/article/details/110639384

0eecfaacc3ff53ab08b9d7556c0766ac.png
  1. 更新服务器的安装源为阿里的源,参考链接:https://blog.csdn.net/js_xh/article/details/79166655
  2. 安装docker;

1 更新资源

sudo apt-get update

1.1 安装的时候无法安装,执行删除锁

sudo rm /var/lib/dpkg/lock

2 安装Docker

sudo apt-get install docker

3 安装http://docker.io。

sudo apt-get install http://docker.io

4 安装docker-registry。

sudo apt-get install docker-registry

5 开始启动我们的docker

sudo systemctl start docker

6 验证安装

sudo docker run hello-world

  1. 更换docker源

参考链接:https://blog.csdn.net/jixuju/article/details/80158493

阿里云加速地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

deead600b88e940237e46b61cfb7fc05.png
  1. docker安装mysql5.7
  • docker pull mysql:5.7
  • mkdir /root/mysql
  • docker run --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -v /root/mysql/logs:/var/log/mysql -d -e MYSQL_ROOT_PASSWORD=root -e LANG=C.UTF-8 -p 3306:3306 mysql:5.7
  • 注:需要外网访问则需要在云服务哪里设置安全组规则开放3306端口
  1. docker安装redis
  • docker pull redis
  • docker run -p 6379:6379 -d redis:latest redis-server
  • docker exec -ti d254983afd0b redis-cli 可以用这个来验证是否安装成功了
  • 注:需要外网访问则需要在云服务哪里设置安全组规则开放6379端口
  1. 服务器安装jdk以及maven
  • 准备好jdk的包和maven包
  • 上传到服务器的指定目录如/root/envi
  • tar -zxvf 包名 即可并用mv命令重命名为maven和java
  • 配置环境变量

vi /etc/profile

94858b23601967cb090818ad67d4e000.png

增加java和maven的环境变量

629440de694278874707b5f251604104.png

source /etc/profile

使环境变量生效

利用mvn -version和java -version测试

90d682ca3e88aedc9908adfcb1cdd410.png

至此这两个环境变量配置完成

  1. 构建基于自己安装的java环境的jdk镜像(这一步可有可无)
  • 在空的目录下编写Dockerfile如/root/images
  • 将jdk的未解压的包拷贝到这个目录下
  • Dockerfile内容

#基础镜像

FROM ubuntu:18.04

#创建者信息

MAINTAINER chengrongkai

RUN mkdir /usr/local/java

# copy the jdk archive to the image,and it will automaticlly unzip the tar file

ADD jdk-8u161-linux-x64.tar.gz /usr/local/java/

# make a symbol link

RUN ln -s /usr/local/java/jdk1.8.0_161 /usr/local/java/jdk

# set environment variables

ENV JAVA_HOME /usr/local/java/jdk

ENV JRE_HOME ${JAVA_HOME}/jre

ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib

ENV PATH ${JAVA_HOME}/bin:$PATH

  • 运行命令构建镜像

docker build -t myjava:8 .

3da3129e963bfcb039edbffeb5167b3c.png

docker images查看创建的镜像

docker run -it myjava:8 /bin/bash

java -version

运行结果如下图所示即为正常

1fb92716f6060dfb4956394ec09aeee4.png
  1. docker安装jenkins中文版
  • docker pull jenkinszh/jenkins-zh

这里选择的是中文的镜像

  • 创建存储目录并授权(很重要)

mkdir /home/jenkins_home

chown -R 1000 /home/jenkins_home

chmod 777 /var/run/docker.sock

参考链接:https://www.jianshu.com/p/db58d1cfd01b

  • 添加权限配置

sudo vi /etc/systemd/system/docker.service

添加内容

[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

重启docker

sudo systemctl daemon-reload

sudo systemctl restart docker

  • 启动jenkins,这里用的是9090端口映射

docker run -d -p 9090:8080 -p 50000:50000 --name myjenkins -v /home/jenkins_home/:/var/jenkins_home -v /usr/bin/git:/usr/bin/git -v /root/envi/java:/usr/local/java -v /root/envi/maven:/usr/local/maven -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /etc/localtime:/etc/localtime:ro -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -G jenkins jenkinszh/jenkins-zh:latest

  • 查看密码-两种方式

1、docker logs -t -f --tail 100 容器ID

容器ID可以用docker ps查看

2、cat /home/jenkins_home/secrets/initialAdminPassword 查看

78bbdcbe83d7a36ef107b5833dce7f6c.png
  • 访问ip+9090即可访问jenkins,如果9090端口无法访问,请检查你的云服务器是否开放了9090的入规则
  • 之后就傻瓜式配置即可

6508c651f7834407ac7cc294e43c7f0e.png

检查下必要的插件

ead09c0b8e0f8209c9e6714412b8b421.png

看下这些插件是否都有,我这边计划用gitee做同步,所以还需要一个gitee的插件

ff144e0e45db28ba7976e416bd45c996.png

安装最后一个插件时勾选下安装后重启即可,等待重启好了再继续下一步操作

545dbb684e3bbf867d0de5d41ad86cba.png

找到系统管理的全局工具管理

6a58cf9d89b7801951db5dff95fd2893.png

填写相应的jdk位置和maven位置、git位置(注意,这个地方填写的是容器里的位置,不是系统对应的位置,就是docker run 命令中-v映射的目录)

ca0571415b48507595ad05c5d4be9beb.png

新建一个maven任务

6d2d8a9dc3c9b4084b06563b34d8c39a.png

源码管理选择git,填写gitee的仓库路径

d1796e192c452b29c3be35e5f62b864d.png

添加认证

4d83842f37bd4e1145bd59cfaa0d29b5.png

添加构建前的准备步骤,如清理旧的容器和镜像

06baec3f96672f15a1c12dd1f701add3.png

shell命令参照如下、

#!/bin/bash

echo "stop old docker container"

docker stop cms

echo "delete old docker container"

docker rm cms

echo "delete old docker images:"

docker rmi cms:latest

echo "clean success"

b1a2c0003d8458d276ba9bd5e152f733.png

设置maven打包命令

efaa168a64e4852c6d6eac790a7b987d.png

clean package -Dmaven.test.skip=true

添加构建完成的shell命令

332a4718a1550d59bf4cd5f44be52c60.png

shell命令参考

#!/bin/bash

echo "build docker image"

mvn dockerfile:build

echo "current docker images:"

docker images | grep cms

echo "start container----->"

docker run -d -p 8080:8080 --name cms cms

echo "start success!"

至此,基本的工程配置编写完成,保存后点击立即构建

查看相应的输出结果

c8829e28b1c80e701152967b1cf067fe.png

看到这样的输出,基本就是成功了

105e3dc09b814e16c36640336d0011e6.png

利用docker images和docker ps查看启动的服务

看到启动了相应的服务就说明成功了

如果服务访问不了可以用docker logs -f -t --tail 100 容器ID查看日志

0eafbb6ce7981465da3c61735222a53f.png

别慌,到这还没完,我们还可以添加gitee的webhooks自动触发构建

先在系统设置中配置gitee令牌

cb47d7c000f189ae54f4922cfd13e561.png

添加令牌

dcd6d11a556aa897ee62f297fd670dfc.png

在gitee生成令牌

c590bf6040c327a226853eea616ccf41.png

配置数据

67cff3a3ed4c6fa516823ad05670d329.png

在项目里配置gitee

a9be1e44459f43fd319dbe266813edc4.png

点击生成按钮

373dfc2554f46a45bef253aabf080f64.png

复制密码

回到gitee你的项目里,找到webhooks

ae9a71701ffe3d954e8fde37734bf690.png

点击添加,密码填写刚刚复制的密码

027acfa6f219d44f129cba42c91310f1.png

url填写,jenkins上面也有给出

c0ed6083537c451b50b6cb5c97e2013b.png

这样配置好就行了

下次执行push操作时就会自动触发构建了

本文首发于

手把手教你利用Docker+jenkins部署你的网站​www.bizhibihui.com
55295392421793242298e036b65fb971.png

4fa0992ba6f1b9848054792512a0532c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_754258.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站技术架构(八)网站的安全架构

2019独角兽企业重金招聘Python工程师标准>>> 从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击(…

(转)提高网站速度的最佳实践

原文来自:http://www.space007.com/post/129.html 相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实现的功能。比如Google机会已经把最基本的office应用都搬到了互联网…

30个漂亮的免费 Flash 网站模板下载

您可能还喜欢 30佳精美的免费Flash网站模板下载35个非常出彩的 Flash 网站作品欣赏40个高质量免费Flash网站模板下载25个很酷的Flash网页设计作品欣赏30个漂亮的免费 Flash 网站模板下载当你需要在短时间内制作出一个网站的时候,模板就非常有用了。这篇文章收集了30…

软件性能测试调查报告书,网站前端性能测试报告

百度搜索:小强测试品牌交流群:229390571内下内容选自《小强软件测试疯狂讲义》一书1. 测试目的通过主要功能页面的前端性能测试,从前端分析引起页面响应缓慢的原因,并根据优化建议对其进行优化,提升前端性能&#xff0…

分享12款非常漂亮的免费国外网站模板

这篇文章收集了12款精美的免费国外网站模板分享给大家,您可以免费下载使用。相信这些漂亮的国外网站模板既能够帮助您节省大量的时间和精力,又能有很满意的效果。感谢那些优秀的设计师分享他们的劳动成果,让更多的人可以使用他们的创意设计&a…

企业用计算机,中国企业数量、企业使用计算机数及企业拥有网站数分析[图]

企业信息化实质上是将企业的生产过程、物料移动、事务处理、现金流动、客户交互等业务过程数字化,通过各种信息系统网络加工生成新的信息资源,提供给各层次的人们洞悉、观察各类动态业务中的一切信息,以作出有利于生产要素组合优化的决策&…

把数据存入excel文件_在python3中爬取网站数据并存入excel表格

代码如下:import requestsfrom bs4 import BeautifulSoupimport pandas as pd #导入pandas模块,并设置为pdrrequests.get("http://www.runoob.com/html/html-intro.html")htmlr.text.encode(r.encoding).decode() #对r的内容进行中文解码并赋值…

c语言做网站_学C语言不知道从哪儿下手?学习框架都帮你列好了!

学C语言不知道从哪儿下手?学习框架都帮你列好了!随着高考结束,在未来计算机专业讲又要迎来一批新生小鲜肉!C语言入门到入土,从长发飘飘到秃顶的老铁也越来越多,其中,想自学成才的也占了不少数&a…

bootstraptable列宽自适应内容_自适应网站和响应式网站有什么区别,它们的好处和劣势是什么?...

是不是有很多小伙伴认为自适应网站与响应式网站是一样的?其实不是,从网站建设的角度来讲自适应网站建设也是响应式网站建设,响应式网站建设也是自适应网站建设。但是真正的细分起来,自适应网站只是响应式网站的一部分。一、响应式…

ios 图片浏览器_使用AWS Lambda提高网站图片加载速度1X倍

当你浏览一个网站页面的时候,浏览器开始了加载页面的过程,你当然希望立即看到这个网页的内容,如果网站加载过慢你可能会产生焦虑并直接关闭它,这对网站的影响是致命的,因为搜索引擎会统计网站的跳出率,进而…

开源自助建站_自助建站还是找建站公司?网站建设方式怎么选?

当有建站需求的时候,很多人都想的是自己自助建站?还是找专业的网站建设公司建站?到底哪种方式,才最适合我?其实网站建设方式不只是自助建站和找专业的网站建设公司这两种,而是有很多。那么,对此…

html下拉列表不居中_每个非网站开发人员都应该了解的21个HTML基础知识

1.标题标题可能是最容易学习的代码之一,并考虑到 它们对您的SEO至关重要,这是一件好事。共有六种不同类型,如下所示。要创建标题,只需将文本包装在所选的标题标签中:2.段落没有一段要详细说明该消息的标题会是什么&…

无人机官方网站_大疆发布全新编程教育无人机,Mind+编程助力其创意无限!

8月25日,大疆发布了全新编程教育无人机新品—ROBOMASTER TT 创造力套装。作为行业领先教育无人机,该款无人机不仅将强大飞行性能注入轻小机身中,使用大疆行业顶尖飞控算法,保障飞行安全性与稳定性,同时搭载500万高清摄…

python网站开发换行_Python在图片中插入大量文字并且自动换行

问题 如何在图片中插入大量文字并且自动换行 效果 原始图效果图注明 若需要写入中文请使用中文字体 实现方式 from PIL import Image, ImageDraw, ImageFont class ImgText: font ImageFont.truetype("micross.ttf", 24) def __init__(self, text): # 预设宽度 可以…

wordpress include 不生效_wordpress零基础建站(4)-在腾讯云搭建LNMP+Redis+wordpress

今天这篇教程我们开始在腾讯云服务器上搭建wordpress环境并安装wordpress,开始涉及到搭建代码了,对于代码不熟悉的小伙伴也不要着急,我会在教程中对于每条命令执行了什么操作作出说明,只要按照步骤操作即可完成wordpress的搭建。本…

云主机管理神器网站管理助手

云主机越来越普及的时代,很多用户苦于没有合适的windows版的管理工具,IIS太弱而且没法支持到目录安全、PHP环境、mysql数据库等。这里推荐西数管理助手给各位,关键是免费可用! 西部数码网站管理助手是一款面向拥有独立服务…

11个与众不同、令人叹为观止的单页网站

单页网站能够给网站浏览者提供一个简洁、叹为观止的体验。在单一的页面内展示完你需要的内容可能是一个富有挑战性的过程,但许多网页设计师喜欢用这种方法 把网站的内容放在一个令人惊讶的页面设计中。从单页所用的图片和文字,以叹为观止的视觉差滚动效果…

java和seo哪个好,seo和java哪个更好

一个seo行业站点,科学的内容制作应该与seo相关,且内容本身是有人搜索的。seo和java哪个更好是有人搜索的语句,且与seo是强相关的,对于seo教程自学网来讲,这样的内容再适合不过了。 任何一门技术,如果精通&a…

Sogou搜狗搜索引擎登录网站 - Blog透视镜

Sogou搜狗是中国搜狐旗下的搜索引擎,其登录方式也很简单,只要输入网址,验证码即可,不需要注册账号,再进行登录,其他非 * 必填的字段,可留下空白不填,验证码只有4码,也很清…

vue+elementui完美实现博客、网站、个人网站,高仿“张凯博客”实现排版

1.本项目Demo实现灵感来源 张凯博客,采用vueelementui实现编码,最终效果图: 完整源码下载 2.首先创建vue项目,采用开发工具Hbuilder。vue创建项目教程可参考:https://www.cnblogs.com/pyjblog/articles/14349370.html …