[002-D] 使用Dockerfile构建CentOS7容器 ※目前(2022/11/29)正在创建中

使用gilab+ansible+gitlab-runner实现IT基础设施的CI/CD流程
※环境搭建和本文也正在积极创建中。

本文的目的

这个目的是为了构建在Docker容器的CentOS上,ansible+gitlab-runner的CI/CD环境,了解在基础CentOS上需要加入哪些库才是合适的。

全部成员

image.png

这篇论文中要解释的部分(容器1)。

image.png

結論 // 一句话就是

以下是最终版本的容器1的Dockerfile。

# CentOS7
FROM centos:7

# system update
RUN yum -y update && yum clean all

# install sudo
RUN yum -y install sudo

# install ssh clients
RUN yum -y install openssh-clients

# install tools
RUN yum groupinstall "Development Tools" -y && \
yum install openssl-devel libffi-devel bzip2-devel -y && \
yum install wget -y

# install tools for git
RUN yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker autoconf

# download git
WORKDIR /usr/local/src/
RUN wget https://www.kernel.org/pub/software/scm/git/git-2.31.0.tar.gz && \
tar zxvf git-2.31.0.tar.gz && \
rm -rf ./git-2.31.1.tar.gz

# install git
WORKDIR /usr/local/src/git-2.31.0
RUN ./configure --prefix=/usr/local && \
make prefix=/usr/local all && \
make prefix=/usr/local install

# export PATH
ENV PATH $PATH:/usr/local/bin:
RUN git --version

# setup workdir
WORKDIR /root
RUN mkdir -p ./opt/python && \
mkdir -p ./opt/src

# download python3.9
WORKDIR /root/opt/src
RUN wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz && \
tar xvf Python-3.9.2.tgz

# install python3
WORKDIR ./Python-3.9.2/
RUN ./configure && \
make && \
make install

# ロケールを日本語に設定
ENV LANG=en_US.UTF-8

# install pip
WORKDIR /root/opt/src
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python3 get-pip.py

# install ansible
WORKDIR /root/opt/src
RUN pip install ansible ansible-lint

# setttings
ADD ./ansible.cfg /etc/ansible

# confirm ansible
RUN ansible --version && \
ansible -i localhost, all -m ping -c local

# install gitlab-runner
RUN curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash && \
yum install -y gitlab-runner

# run gitlab-runner
ENV PATH $PATH:/usr/local/bin/ansible-lint
RUN sudo gitlab-runner run &

安装基本镜像和开发工具。

有关Git安装的经过和注意事项。

经过

为什么要安装Git?
    CICDを検証するために、リポジトリ(gitlab)にローカルリポジトリからアップロードできる環境を作るため

为什么要安装全新的git?

基础镜像中包含了git,但以下仍解释了为什么需要重新安装git。

    • ベースイメージのgitが古すぎる

 

    リモートリポジトリ(gitlab)に含まれるgitと、CICDの実行環境(gitlab-runner)のgitのバージョンが違いすぎるとエラーが出てハマりました。gitlabとgitlab-runnerのgitのバージョンは同じか、少なくとも近いものにしておくことをお勧めします。

注意事项

在中文中,安装Git不推荐使用yum,建议从源代码进行编译。

小心Git源代码的版本。版本太新可能包含漏洞。

在安装(编译)之后,如果不设置路径,无法使用。

建立ansible执行环境(安装Python3.9)

経緯 –

– 经过,经过的过程
– 背景,前因后果
– 情况,情节

与git类似,基本镜像中也包含了Python。安装Python的原因如下。

Ansible的执行环境需要使用3.8或更高版本。

安装3.8系列时会出现提示要进行更新。

重点注意事项

如果在没有root权限(用户权限受限)的环境中创建Python执行环境的情况下

目前,3.9版本的安装主要以从源代码进行编译为主流(根据作者的调查)。

安装Ansible(使用pip安装)

经过

安装pip的原因

为什么要安装 ansible-lint ?

请留意

安装GitLab Runner。

※会持续不断地更新。