イメージからアクセスしていくつかのアプリケーションをインストールするCentOS 7
リポジトリをセットアップしました。OpenAFS
このプロセスは完全に手動であり、GitLab-CI
.
Docker-in-Docker runner を設定するための指示に従って、ランナーを設定しました。
次に、ホスト ボリューム/etc/gitlab-runner/config.toml
を指定するようにファイルを変更しました ( volumesエントリ)。OpenAFS
concurrent = 1
check_interval = 0
[[runners]]
name = "DinD builder"
url = "https://gitlab.ch/ci"
token = "7cf33172d567dd2504e988a78f64c3"
executor = "docker"
[runners.docker]
tls_verify = false
image = "docker:latest"
privileged = true
disable_cache = false
volumes = ["/afs:/afs:ro", "/cache"]
[runners.cache]
には、リポジトリ ファイルをからcurrently-being-built-imageにコピーDockerfile
するコマンドがあるため、次のコマンドを使用してソフトウェアをインストールできます。RUN
AFS
yum install
FROM gitlab-registry.ch/cc7-base
MAINTAINER Somebody
RUN echo "set completion-ignore-case On" >> /etc/inputrc
RUN yum update -y && \
yum install -y \
gcc \
git \
mc \
python-devel \
python-pip \
svn \
unzip \
vim
RUN cp /afs/<hugePathHere>/Linux/RPM/cc7/custom-repo.repo /etc/yum.repos.d && \
yum install --enablerepo=custom-repo -y CustomApp
CMD /bin/bash
.gitlab-ci.yml
ファイルは次のとおりです。
services:
- docker:dind
build:
stage: build
tags:
- rtf-builder
before_script:
- docker info
- docker login -u $DOCKER_LOGIN_USERNAME -p $DOCKER_LOGIN_PASSWORD gitlab-registry.ch
script:
- docker build --pull -t $TO .
- docker push $TO
after_script:
- docker logout gitlab-registry.ch
variables:
TO: gitlab-registry.ch/<myUser>/testdockergitlabbuild:$CI_BUILD_REF_NAME
しかし、これは常に失敗しますGitLab-CI
。
cp: '/afs/ hugePathHere /Linux/RPM/cc7/custom-repo.repo' を stat できません: そのようなファイルまたはディレクトリーはありません
ホストマシンでは
AFS
アクセス可能で、レポ ファイルを手動でコピーできます。で作成されたコンテナ
docker run --rm --privileged -ti -v /afs:/afs cc7-base
はAFS
アクセス可能です。
AFS
からアクセスできるようにするために何か不足していDockerfile
ますか?
ノート:
$DOCKER_LOGIN_USERNAME
および$DOCKER_LOGIN_PASSWORD
GitLabセキュア変数です。