Newer
Older
# Installs Docker repository, docker-ce, docker-compose
class ubuntu_server::docker($docker_compose_latest_version='1.18.0',$ensure_running=true,$live_restore=false,$docker_daemon_config='ubuntu_server/etc/docker/daemon.json.erb') {
if versioncmp($::operatingsystemrelease, '18.04') < 0 {
exec{'docker-apt-repo':
command => 'wget -O - https://download.docker.com/linux/ubuntu/gpg | apt-key add -',
unless => 'apt-key list | grep -q "4096R/0EBFCD88"',
notify => Exec['apt-get-update'],
}
else {
exec{'docker-apt-repo':
command => 'wget -O - https://download.docker.com/linux/ubuntu/gpg | apt-key add -',
unless => 'apt-key fingerprint 0EBFCD88 | grep -q -F "9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88"',
notify => Exec['apt-get-update'],
}
file{'/etc/docker/':
ensure => directory,
mode => '0700',
}
file{'/etc/docker/daemon.json':
ensure => present,
content => template($docker_daemon_config),
before => Package['docker-ce']
content => "deb [arch=${::architecture}] http://download.docker.com/linux/ubuntu ${::lsbdistcodename} stable",
notify => Exec['apt-get-update'],

Benedikt Wegmann
committed
package{['lxc-docker','docker','docker-engine','docker.io']:
before => Package['docker-ce'],
if $::docker_live_restore == true {
package{'docker-ce':
ensure => latest,
require => [Exec['docker-apt-repo'],File['/etc/apt/sources.list.d/docker.list'],Exec['apt-get-update']],
} ~> Service['docker']
} else {
package{'docker-ce':
ensure => present,
require => [Exec['docker-apt-repo'],File['/etc/apt/sources.list.d/docker.list'],Exec['apt-get-update']],
}
if $ensure_running == true {
service{'docker':
ensure => running,
require => Package['docker-ce'],
}
if $::docker_compose_version == undef {
}
else {
$docker_compose_version = $::docker_compose_version
if versioncmp($docker_compose_latest_version,$docker_compose_version) > 0 {
exec{'docker-compose':
command => "curl -L https://github.com/docker/compose/releases/download/${docker_compose_latest_version}/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose",
}
exec{'docker-compose-bash-completion':
command => "curl -L https://raw.githubusercontent.com/docker/compose/${docker_compose_latest_version}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose",
}
file{'/usr/local/bin/docker-compose':
require => Exec['docker-compose'],
}