GitLab を Docker コンテナとして稼働させる

https://docs.gitlab.com/omnibus/docker/

ただし、一部自分が使いやすいようにコマンドを改変しています。
(自動起動しないように –restart always を外したり ssh を公開しなかったり、など)

また、SELinux は無効になっていて、Docker はすでに稼働しているものとします。

コンテナを起動

docker run --detach \
    --hostname gitlab.yskw.info \
    --publish 443:443 --publish 80:80 \
    --name gitlab \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

gitlab へのアクセスを Docker ネットワーク経由で行いたい場合は起動したコンテナの IP を調べておく

docker inspect gitlab | jq -r '.[].NetworkSettings.IPAddress'

設定を変更

外部からアクセスできるように、GitLab の設定を変更。

docker exec -it gitlab vi /etc/gitlab/gitlab.rb

L.13 external_url をこんな感じに (Docker ネットワーク経由の場合)
external_url 'http://172.17.0.2/'
docker restart gitlab

ここから GitLab Runner

https://docs.gitlab.com/runner/install/docker.html

イメージの取得

docker pull gitlab/gitlab-runner

起動

docker run -d --name gitlab-runner \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

GitLab に Runner を登録する

docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  --name gitlab-runner-tmp gitlab/gitlab-runner register

Runner の再起動

docker restart gitlab-runner

Runner コンテナに awscli を導入

docker exec -it gitlab-runner /bin/bash

apt update
apt install python3 python3-pip

pip3 install awscli

aws 認証情報の設定

docker exec -it gitlab-runner /bin/bash
su - gitlab-runner
aws configure

.gitlab-ci.yml のリファレンス
http://localhost/help/ci/yaml/README.md