资讯专栏INFORMATION COLUMN

使用 Jenkins 自动部署 Docker 服务(一、Jenkins 搭建篇)

Clect / 2329人阅读

摘要:直接使用官方的镜像一般会有两个问题导致不能正常自动部署基于的服务。

直接使用 Jenkins 官方的镜像一般会有两个问题导致不能正常自动部署基于 Docker 的服务。

存在的问题

官方的镜像默认不是使用 root 账号,虽然 Jenkins 可以正常启动,但是因为没有权限导致不能向宿主机写文件

Jenkins 基于 Docker 搭建,虽然 Jenkins 同样可以正常启动,但不能在容器内部随意使用 Docker

准备工作
安装 docker、修改 docker 镜像仓库、安装 pip、安装 docker-compose
# 如果觉得麻烦可以用这个部署辅助工具自动完成
git clone https://github.com/kwkwc/dockerSH.git

# 进入工具目录并自动部署
cd dockerSH && ./deploy.sh
问题一 解决
重新创建镜像修改为 root 用户,安装 docker 依赖库(问题二解决)
Dockerfile
FROM jenkins/jenkins:2.137
MAINTAINER kwkw "kwkw@example.com"
ENV REFRESHED_AT 2018-08-13

USER root

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

# 安装 docker 依赖库
RUN apt update && apt install -y libltdl7
创建新镜像
docker build -t kwkw/jenkins:2.137 .
问题二 解决
将宿主机的 Docker 程序挂载到 Jenkins 容器内部(宿主机环境为 Ubuntu 16.04,其他环境未测试)
docker-compose.yml
version: "2"
services:
  jenkins:
    restart: always
    image: kwkw/jenkins:2.137
    container_name: jenkins
    expose:
      - "8080"
      - "50000"
    ports:
      - "8080:8080"
      - "50000:50000"
    environment:
      JAVA_OPTS: "-Djava.awt.headless=true -Duser.timezone=Asia/Shanghai"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      # 将宿主机的 Docker 程序挂载到 Jenkins 容器内部
      - /usr/bin/docker:/usr/bin/docker:ro
      - ../data/jenkins:/var/jenkins_home
启动 Jenkins
docker-compose up -d
浏览器打开
http://127.0.0.1:8080

初次使用需要填写密钥
请根据 docker-compose.yml 里面填写的挂载路径查找

安装
一般我们选择安装推荐的插件,但是因为默认插件源在国外,速度非常慢而且安装失败率高,所以请自行查找特殊办法

创建管理员用户

搭建完成

如果已经搭建好可以使用 Docker 的 Jenkins,请移步到这篇文章

使用 Jenkins 自动部署 Docker 服务(二、构建部署篇)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27402.html

相关文章

  • 使用 Jenkins 自动部署 Docker 服务(二、构建部署

    摘要:如果还没有搭建好可以使用的,请先移步到这篇文章进行搭建使用自动部署服务一搭建篇目标通过实现推送代码后自动部署基于的服务准备工作获取示例项目或者直接复制以下文件内容获取示例项目项目文件页面文件镜像文件部署文件部署脚本文件页面文件项目很简单, 如果还没有搭建好可以使用 Docker 的 Jenkins,请先移步到这篇文章进行搭建 使用 Jenkins 自动部署 Docker 服务(一、Je...

    denson 评论0 收藏0
  • 套基础自动部署搭建过程

    摘要:问题背景公司初创技术团队,没有任何基础设施的情况下,需要搭建一系列管理以及自动化部署等工具所以引发了下面一系列的部署过程,历时两天,中间也是碰到各种问题,但最终把基本工具全部搭建成功,耶,下面带大家一起看下此次搭建过程。 问题背景 公司初创技术团队,没有任何基础设施的情况下,需要搭建一系列code管理以及自动化部署等工具....所以引发了下面一系列的部署过程,历时两天,中间也是碰到各种...

    mzlogin 评论0 收藏0
  • 从0开始搭建自动部署环境(续)

    摘要:从开始搭建自动部署环境续前言上一篇从开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。创建本地仓库参考新建项目项目是我写的一个用来测试环境的项目,代码托管在上。 从0开始搭建自动部署环境(续) 前言 上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一个同步在Github上的Spr...

    lily_wang 评论0 收藏0
  • 从0开始搭建自动部署环境(续)

    摘要:从开始搭建自动部署环境续前言上一篇从开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。创建本地仓库参考新建项目项目是我写的一个用来测试环境的项目,代码托管在上。 从0开始搭建自动部署环境(续) 前言 上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一个同步在Github上的Spr...

    shuibo 评论0 收藏0
  • Docker容器系列教程(三):jenkins环境搭建与插件安装

    摘要:本文将使用这些命令搭建一个持续集环境,解决不能联网的问题来安装各种常用插件。总结通过本章学习,你已经知道了基于如何在环境下搭建环境,并创建一个项目。以为基础框架,为数据访问层,为权限授权层,对常用数据进行缓存,基于构建的作为前端框架。 回顾:上一文对Docker常用的命令以罗列的方式做了一个详尽的介绍。本文将使用这些命令搭建一个jenkins持续集环境,解决jenkins不能联网的问题...

    vvpvvp 评论0 收藏0

发表评论

0条评论

Clect

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<