From: Grant Slater Date: Sun, 22 Mar 2020 23:15:41 +0000 (+0000) Subject: Add basic docker cookbook X-Git-Url: https://git.openstreetmap.org./chef.git/commitdiff_plain/28d9a1d5b4c58ebc33e94780753e6c1e2a2e2181 Add basic docker cookbook --- diff --git a/cookbooks/apt/recipes/default.rb b/cookbooks/apt/recipes/default.rb index 0bbe8ea94..fe79213c0 100644 --- a/cookbooks/apt/recipes/default.rb +++ b/cookbooks/apt/recipes/default.rb @@ -161,6 +161,14 @@ apt_repository "mediawiki" do key "AF380A3036A03444" end +apt_repository "docker" do + action repository_actions["docker"] + uri "https://download.docker.com/linux/ubuntu" + arch "amd64" + components ["stable"] + key "https://download.docker.com/linux/ubuntu/gpg" +end + package "unattended-upgrades" if Dir.exist?("/usr/share/unattended-upgrades") diff --git a/cookbooks/docker/attributes/default.rb b/cookbooks/docker/attributes/default.rb new file mode 100644 index 000000000..f71e326f3 --- /dev/null +++ b/cookbooks/docker/attributes/default.rb @@ -0,0 +1,2 @@ +# Add the docker APT source +default[:apt][:sources] = node[:apt][:sources] | ["docker"] diff --git a/cookbooks/docker/metadata.rb b/cookbooks/docker/metadata.rb new file mode 100644 index 000000000..0c9cc8660 --- /dev/null +++ b/cookbooks/docker/metadata.rb @@ -0,0 +1,8 @@ +name "docker" +maintainer "OpenStreetMap Administrators" +maintainer_email "admins@openstreetmap.org" +license "Apache-2.0" +description "Installs and configures the docker daemon" + +version "1.0.0" +supports "ubuntu" diff --git a/cookbooks/docker/recipes/default.rb b/cookbooks/docker/recipes/default.rb new file mode 100644 index 000000000..fd3773634 --- /dev/null +++ b/cookbooks/docker/recipes/default.rb @@ -0,0 +1,44 @@ +# +# Cookbook:: docker +# Recipe:: default +# +# Copyright:: 2020, OpenStreetMap Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package %w[ + apt-transport-https + ca-certificates + curl + software-properties-common + gnupg2 +] + +template "/etc/docker/daemon.json" do + source "daemon.json.erb" + owner "root" + group "root" + mode 0o644 +end + +package %w[ + docker-ce + docker-ce-cli + containerd.io +] + +service "docker" do + action [:enable, :start] + subscribes :restart, "template[/etc/docker/daemon.json]" +end diff --git a/cookbooks/docker/templates/default/daemon.json.erb b/cookbooks/docker/templates/default/daemon.json.erb new file mode 100644 index 000000000..5d18abccd --- /dev/null +++ b/cookbooks/docker/templates/default/daemon.json.erb @@ -0,0 +1,8 @@ +{ + "exec-opts": ["native.cgroupdriver=systemd"], + "log-driver": "json-file", + "log-opts": { + "max-size": "100m" + }, + "storage-driver": "overlay2" +}