Skip to content

Instantly share code, notes, and snippets.

@Xainey
Created August 1, 2016 19:49
Show Gist options
  • Save Xainey/02069bd0e606378d730bc86881c6a26b to your computer and use it in GitHub Desktop.
Save Xainey/02069bd0e606378d730bc86881c6a26b to your computer and use it in GitHub Desktop.
Vagrant/Docker Example for Gitlab/Jenkins
version: '2'
services:
nginx_proxy:
image: jwilder/nginx-proxy
restart: always
container_name: nginx_proxy
ports:
- "80:80"
- "443:443"
# network_mode: "host"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
# - /root/config:/etc/nginx/certs
environment:
- DEFAULT_HOST=dockerbox.dev
# - VIRTUAL_PROTO=https
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
container_name: gitlab
expose:
- '80'
- '389'
environment:
VIRTUAL_HOST: git.dockerbox.dev
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://git.dockerbox.dev'
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'XXX'
port: 389
uid: 'sAMAccountName'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'XXX'
password: 'XXX'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'XXX'
user_filter: ''
attributes:
username: ['uid', 'userid', 'sAMAccountName']
email: ['mail', 'email', 'userPrincipalName']
name: 'cn'
first_name: 'givenName'
last_name: 'sn'
## EE only
group_base: ''
admin_group: ''
sync_ssh_keys: false
EOS
gitlab_rails['initial_root_password'] = "password"
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
whoami:
image: jwilder/whoami
container_name: whoami
environment:
- VIRTUAL_HOST=whoami.dockerbox.dev
jenkins:
image: jenkins:latest
container_name: jenkins
restart: always
expose:
- '8080'
- '50000'
environment:
- VIRTUAL_HOST=jenkins.dockerbox.dev
- VIRTUAL_PORT=8080
# volumes:
# - /srv/jenkins:/var/jenkins_home
# -*- mode: ruby -*-
# vi: set ft=ruby :
#Docker Engine and Compose needs to be installed or added to provision.
ip_address = "192.168.30.30"
hostname = 'dockerbox.dev'
subdomains = ['git.dockerbox.dev', 'whoami.dockerbox.dev', 'jenkins.dockerbox.dev']
Vagrant.configure(2) do |config|
config.vm.box = "bento/ubuntu-14.04"
#config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.network "private_network", ip: ip_address
config.vm.hostname = hostname
if Vagrant.has_plugin?('vagrant-hostsupdater')
config.hostsupdater.aliases = subdomains
end
config.vm.provision "shell", run: "always" do |s|
s.inline = "sudo docker-compose up -d"
end
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment