Assuming a GitLab container has been installed via Docker, a GitLab CI can be installed and associated with it. It needs a separate database server:
sudo mkdir -p /opt/mysql-ci/data docker run --name=mysql-ci -d -e 'DB_NAME=gitlab_ci_production' \ -e 'DB_USER=gitlab_ci' \ -e 'DB_PASS=XXXXX' \ -v /opt/mysql-ci/data:/var/lib/mysql sameersbn/mysql:latest
but it can re-use the redis server from GitLab.
Create a new application in GitLab (name it GitLab CI for instance but the name does not matter) and set the callback URL to http://workbench.dachary.org:8080/user_sessions/callback. It will display an application id to use for GITLAB_APP_ID below and a secret to use for GITLAB_APP_SECRET below.
docker pull sameersbn/gitlab-ci sudo mkdir -p /opt/gitlab-ci/data pw1=$(pwgen -Bsv1 64) ; echo $pw1 pw2=$(pwgen -Bsv1 64) ; echo $pw2 docker run --name='gitlab-ci' -it --rm \ --link mysql-ci:mysql \ --link redis:redisio \ -e 'GITLAB_URL=http://workbench.dachary.org' \ -e 'SMTP_ENABLED=true' \ -e 'SMTP_USER=' \ -e 'SMTP_HOST=172.17.42.1' \ -e 'SMTP_PORT=25' \ -e 'SMTP_STARTTLS=false' \ -e 'SMTP_OPENSSL_VERIFY_MODE=none' \ -e 'SMTP_AUTHENTICATION=:plain' \ -e 'GITLAB_CI_PORT=8080' \ -e 'GITLAB_CI_HOST=workbench.dachary.org' \ -e "GITLAB_CI_SECRETS_DB_KEY_BASE=$pw1" \ -e "GITLAB_CI_SECRETS_SESSION_KEY_BASE=$pw2" \ -e "GITLAB_APP_ID=feafd' \ -e 'GITLAB_APP_SECRET=ffa8b' \ -p 8080:80 \ -v /var/run/docker.sock:/run/docker.sock \ -v /opt/gitlab-ci/data:/home/gitlab_ci/data \ -v $(which docker):/bin/docker sameersbn/gitlab-ci
It uses port 8080 because port 80 is already in use by GitLab. The SMTP* are the same as when GitLab was installed.
The user and password are the same as with the associated GitLab.