Skip to content

Commit af88680

Browse files
authored
Merge pull request #19 from Zuehlke/feature/add-docker
Add Docker Installation
2 parents af83c9b + 6ed0aa9 commit af88680

7 files changed

Lines changed: 67 additions & 5 deletions

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ For the Chef-based equivalent of it, see https://github.com/Zuehlke/linux-develo
1919

2020
These are the main tools included in this developer VM:
2121

22-
* [VSCode](https://code.visualstudio.com/) - as a general purpose (code) editor
22+
* [VSCode](https://code.visualstudio.com/) - as a general purpose (code) editor, e.g. for updating the Ansible roles when working from within the developer VM
23+
* [Docker](https://www.docker.com/) - as a general purpose container runtime, e.g. for building your applications with a dockerized toolchain
2324

2425
Apart from the above, the following tools are used to set up and maintain this developer VM:
2526

roles/docker/tasks/main.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
3+
- name: Download Docker CE .deb Packages
4+
get_url:
5+
url: https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/{{ item.deb_file }}
6+
checksum: "sha256:{{ item.sha256sum }}"
7+
dest: "{{ download_cache_dir }}/{{ item.deb_file }}"
8+
force: no
9+
with_items: "{{ docker_deb_packages }}"
10+
11+
- name: Install Docker CE .deb Packages
12+
apt:
13+
deb: "{{ download_cache_dir }}/{{ item.deb_file }}"
14+
state: present
15+
with_items: "{{ docker_deb_packages }}"
16+
17+
- name: Add VM user to 'docker' group
18+
user:
19+
name: "{{ ansible_env.SUDO_USER }}"
20+
groups: docker
21+
append: yes

roles/docker/vars/main.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
3+
docker_deb_packages:
4+
- deb_file: containerd.io_1.4.6-1_amd64.deb
5+
sha256sum: c11e644e8fcb6fe92ff2be9a9b730b9baee0f467ac7db1d8597437ff232261c8
6+
- deb_file: docker-ce-cli_20.10.7~3-0~ubuntu-focal_amd64.deb
7+
sha256sum: 1c3f6b4804523c77a9ef89d7ee894c2749c2acb2e8de53d3d49a02fc2c9faf51
8+
- deb_file: docker-ce_20.10.7~3-0~ubuntu-focal_amd64.deb
9+
sha256sum: e0a81fcee2e9b97ba8c6c061772e220ff02975a2da9a6c155b1aa9743dc9dfbc

roles/vscode/vars/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ vscode_sha256sum: a5a50ec014b27656c198e560796f3b41180f3bdb0c19f0005193f79ed47fc8
44

55
vscode_extensions:
66
- zbr.vscode-ansible
7+
- ms-azuretools.vscode-docker
8+
- ms-vscode-remote.remote-containers

site.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@
1616
- { role: cache, tags: "cache" }
1717
- { role: git, tags: "git" }
1818
- { role: vscode, tags: "vscode" }
19+
- { role: docker, tags: "docker" }

spec/test_docker.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import os
2+
3+
def test_vm_user_is_in_docker_group_(host):
4+
assert 'docker' in host.user(os.environ['USER']).groups
5+
6+
def test_containerd_package_is_installed_at_version_1_4_6_(host):
7+
assert host.package('containerd.io').is_installed
8+
assert '1.4.6' in host.package('containerd.io').version
9+
10+
def test_containerd_version_command_reports_1_4_6_(host):
11+
assert '1.4.6' in host.run('containerd -v').stdout
12+
13+
14+
def test_docker_cli_package_is_installed_at_version_20_10_7_(host):
15+
assert host.package('docker-ce-cli').is_installed
16+
assert '20.10.7' in host.package('docker-ce-cli').version
17+
18+
def test_docker_cli_version_command_reports_20_10_7_(host):
19+
assert '20.10.7' in host.run('docker -v').stdout
20+
21+
22+
def test_docker_engine_package_is_installed_at_version_20_10_7_(host):
23+
assert host.package('docker-ce').is_installed
24+
assert '20.10.7' in host.package('docker-ce').version
25+
26+
def test_docker_engine_version_command_reports_20_10_7_(host):
27+
assert '20.10.7' in host.run('sudo docker version --format "{{.Server.Version}}"').stdout

spec/test_vscode.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ def test_vscode_version_command_reports_version_1_57_1_(host):
77
assert '1.57.1' in host.run('code --version').stdout
88

99
@pytest.mark.parametrize('extension', [
10-
'zbr.vscode-ansible'
10+
'zbr.vscode-ansible',
11+
'ms-azuretools.vscode-docker',
12+
'ms-vscode-remote.remote-containers'
1113
])
12-
def test_vscode_extensions_include_defined_extensions_(host, extension):
13-
installed_extensions = host.run('code --list-extensions').stdout
14-
assert extension in installed_extensions
14+
def test_vscode_extension_is_installed_(host, extension):
15+
assert extension in host.run('code --list-extensions').stdout

0 commit comments

Comments
 (0)