docker 安装jenkins 发布 asp.net core 2.0
安装Docker
其实安装Docker的过程,大家可以到Docker官网找到自己相对应的安装文档进行安装,Docker区分CE和EE的两个版本,具体这两个版本有什么区别,大家自行查阅相关资料,这里不再概述。教程用的是CE那么就找到对应的官方文档进行安装,以下是教程安装的步骤
1.更新一下包吧,多更无害
# sudo yum -y update
2.安装所需的软件包
# sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3.使用稳定版的仓库(当然可以使用最新版或测试版的仓库,这个需要官方的说明)
# sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4.安装Docker ce
# sudo yum install docker-ce
tips:在生产系统上,您应该安装特定版本的Docker CE,而不是始终使用最新版本。
5.启动Docker
# sudo systemctl start docker
6.docker
通过运行hello-world
映像验证是否正确安装。
# docker run hello-world
如果出现以下的界面,就代表安装成功
安装Jenkins
首先不直接从Docker Store上直接Pull Jenkins 的 Image 文件,因为待会需要进行dotnet core 的 Docker自动部署,需要对宿主机上的Docker进行直接操作,那么需要挂载 Docker 给 Jenkins Image,所以现在需要自己动手编写 Dockerfile 构建自定义的Jenkins。
# touch Dockerfile
# vim Dockerfile
插入以下内容:
FROM jenkins USER root
#清除了基础镜像设置的源,切换成腾讯云的jessie源
#使用非腾讯云环境的需要将 tencentyun 改为 aliyun
RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
&& echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安装缺少的包
RUN apt-get update && apt-get install -y libltdl7 && apt-get update ARG dockerGid=999 RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group # 安装 docker-compose 因为等下构建环境的需要
RUN curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose RUN chmod +x /usr/local/bin/docker-compose
如果不安装 libltdl7 会导致如下这个问题,原因是jenkins容器内部没有这个包
docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory
Build step 'Execute shell' marked build as failure
在Jenkins操作宿主的Docker的时候会出现拒绝访问的问题,其实就是容器的jenkins用户没有权限访问容器外的docker命令,所以 RUN命令 需要把Jenkins用户加入到Docker用户组
构建Image
# docker build . -t auto-jenkins
出现以上 Successfully 内容代表安装Jenkins成功
在启动Jenkins时,需要先创建一个Jenkins的配置目录,并且挂载到docker 里的Jenkins目录下
# mkdir -p /var/jenkins_home
运行 Jenkins
# docker run --name jenkins -p 8080:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/bin/docker \
-v /var/jenkins_home :/var/jenkins_home \
-d auto-jenkins
第一行:构建一个名称为jenkins的容器 -p 是容器运行开放端口
第二行 和第三行: -v 是将宿主机的docker文件挂载进容器里
第四行:建立宿主机的配置目录,挂载进docker容器里,这样容器里的Jenkins配置目录文件就会映射出来
第五行:使用auto-jenkins Image 并且后台启动
这个时候 run Jenkins 会提示成功
执行 docker ps 命令后,发现什么都没有
执行 docker ps -a 命令看看
执行 docker start -a jenkins 让容器前台输出运行信息的方式运行
不难看出其实 Jenkins 启动已经是可以了,只是权限问题导致这个错误的信息。
现在需要看一下Jenkins官方的Dockerfile
知道问题原因,贴上代码了。
##修改 /var/jenkins 文件夹权限
# chown -R 1000 /var/jenkins_home
继续执行运行Jenkins 代码
# docker run --name jenkins -p 8080:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/bin/docker \
-v /var/jenkins_home:/var/jenkins_home \
-d auto-jenkins
出现一串字符后,执行 docker ps 会发现容器已经启动了,正常了。这个时候是不是可以使用了?别着急,还有很长的路。
配置Jenkins
打开浏览器输入地址 your IP:8080 进行访问,你会开心的看到这个界面,看到这个界面代表你的Jenkins 已经安装成功了,但是需要进行配置,现在就教大家怎么去配置
首先,进入容器内
# docker exec -it jenkins /bin/bash
查看 /var/jenkins_home/secrets/initialAdminPassword 文件内的密码
# cat /var/jenkins_home/secrets/initialAdminPassword
其实不一定要进入容器内查看密码,可以直接在宿主机的环境下,查看 /var/jenkins//secrets/initialAdminPassword 的内容,因为之前笔者已经将这个目录挂载进Docker里面了
复制输出的内容,粘贴到Administrator password,输入 exit 退出容器,此时进行下一步你会看到此界面,点击 Install suggested plugins
等待初始化完毕
到了这一步,自己随缘去填吧。
使用VS2017创建一个ASP.NET Core 2.0 Web应用程序,并将代码上传到git。这里笔者就不演示上传代码的过程步骤了。
为你们准备了一个地址,方便你们完成本教程:http://git.oschina.net/wenalu/MvcTest
新建一个自由风格的软件项目,并填名称 点击 OK
填写源代码管理
勾选 Poll SCM 设置拉取Git 上代码的间隔,笔者这里是两分钟拉取一次
勾上 Delete workspace before build start 是设置构建前删除工作区
勾上 Abort the build if it's stuck 是设定构建的超时时间,如果构建使用的时间超过设定的时间,那么就认为这次的构建是失败的。笔者这里超时设置的是10分钟
增加一个Execute Shell 脚本,并填写以下脚本内容
#!/bin/bash
# 获取短版本号 GITHASH=`git rev-parse --short HEAD`
echo ---------------Remove-Orphans------------------
docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml -p dockercompose4255153253317384266 down --rmi local --remove-orphans
echo ------------------Config-----------------------
docker-compose -f ./docker-compose.ci.build.yml -p dockercompose4255153253317384266 config
echo ------------------Build------------------------
docker-compose -f ./docker-compose.ci.build.yml -p dockercompose4255153253317384266 up --build
echo ---------------Publishing...------------------
docker-compose -f "./docker-compose.yml" -f "./docker-compose.override.yml" -p dockercompose4255153253317384266 up -d --build
应用保存,回到项目界面上。点击立即构建进行部署工作 SUCCESS
打开浏览器,地址输入 your IP:8088/
参考地址
https://www.cnblogs.com/LongJiangXie/p/7517909.html Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署
https://www.cnblogs.com/stulzq/p/8627360.html 使用Docker安装Jenkins
https://www.cnblogs.com/stulzq/p/8627824.html ASP.NET Core + Docker +Jenkins 实现持续集成
[Jenkins]admin用户登陆,提示登陆无效(之前登陆OK,三天没有登陆,突然提示登陆无效,重启无法解决)的解决方法
问题出现现象:
系统一直正常,突然某天登陆,提示用户无效,无法登陆成功。
1、打开config文件,JENKINS_HOME目录,然后在目录下查找config.xml文件)
2、修改<useSecurity>true</useSecurity>为<useSecurity>false</useSecurity>
3、删除<authorizationStrategy>*****</authorizationStrategy>和<securityRealm>****</securityRealm>两项内容
4、重启jenkins,重新登陆即可
docker 安装jenkins 发布 asp.net core 2.0的更多相关文章
- Ubuntu & Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践
相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...
- Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践
相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...
- Docker安装及部署实例.Net Core
1.什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱 ...
- 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1】
鸡冻人心的2016,微软高产年. build 2016后 各种干货层出不穷. 1 Win10 集成了bash ,实现了纳德拉的成诺,Microsoft Love Linux!!! 2 跨平台 ,收 ...
- win10下ASP.NET Core 2.0部署环境搭建(转)
此文用于记录在win10环境下,新建的Asp.net Core 2.0 Web应用项目如何运行在IIS上 一.运行环境 操作系统: Window10 家庭中文版 版本 10.0.15063 版本 15 ...
- [翻译] ASP.NET Core 3.0 的新增功能
ASP.NET Core 3.0 的新增功能 全文翻译自微软官方文档英文版 What's new in ASP.NET Core 3.0 本文重点介绍了 ASP.NET Core 3.0 中最重要的更 ...
- Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署
写在前面 Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级 ...
- 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- docker 初识之二(简单发布ASP.NET Core 网站)
在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台.登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合 ...
随机推荐
- Mincut 最小割 (BZOJ1797+最小割+tarjan)
题目链接 传送门 思路 根据题目给定的边跑一边最大流,然后再在残留网络上跑\(tarjan\). 对于每一条边有: 如果它是非满边,那么它一定不是最小割集里面的边: 如果\(c[u[i]] \not= ...
- python3接口自动化:绕过验证码登陆
import requests import json from time import sleep class Test: url= "http://www.cnblogs.com/&qu ...
- Win10上的Docker应用:Docker-compose(容器编排)
阅读目录: Docker应用:Hello World Docker应用:Docker-compose(容器编排) 前言: 昨天完成了Docker入门示例(Docker应用:Hello World),示 ...
- 51Nod1686 第K大区间 和 NOI2016 区间
谈一下尺取法的经典题. 第K大区间 定义一个区间的值为其众数出现的次数. 现给出n个数,求将所有区间的值排序后,第K大的值为多少. 众数:区间里出现次数最多的数字,例如:1 1 2 2 2,区间[1 ...
- awk编程的基本用法
awk也是用来处理文本的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息,可以实现数据查找.抽取文件中的数据.创建管道流命令等功能. awk模式匹配 第一种方法打印空白行将空白行打印出来,并 ...
- hive中的日期转换函数
1.unix时间戳转时间函数 语法: from_unixtime(bigintunixtime[, string format]) 返回值: string 说明: 转化UNIX时间戳(从197 ...
- Helm 安装Nginx Ingress
为了便于将集群中的服务暴露到集群外部,需要使用Ingress.接下来使用Helm将Nginx Ingress部署到Kubernetes上. Nginx Ingress Controller被部署在Ku ...
- 最后一个对象属性后边不要加豆号的bug,血淋淋的教训啊,模块化开发IE7下的严重错误,养成好习惯
最近总是写滚动图效果,重复的劳动后,决定写一个滚动图的封装插件.结果写完后在其他浏览器都可以用,却IE7下毫无反应.反复测试各种检查后,发现竟然是在参数对象最后一个属性后多加了个逗号,结果就死在了IE ...
- Magento2 UI components概述
UI components 概述Magento UI components 是用来展示不同的UI元素,比如表,按钮,对话框等.他们被用于简单灵活的交互界面渲染.Components被用来渲染结果界面, ...
- 项目(1-1)ES32获取mpu9250数据网页交互显示
教程 https://www.hackster.io/donowak/esp32-mpu9250-3d-orientation-visualisation-467dc1 项目地址 https://gi ...