Skip to content

Commit 327f382

Browse files
committed
add ubuntu 24.04
Signed-off-by: Sebastian Gumprich <rndmh3ro@users.noreply.github.com>
1 parent 5f8e889 commit 327f382

3 files changed

Lines changed: 124 additions & 0 deletions

File tree

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: ubuntu2404-ansible-latest
2+
on:
3+
# yamllint disable-line rule:truthy
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- 'ubuntu2404-ansible-latest/**'
8+
pull_request:
9+
paths:
10+
- 'ubuntu2404-ansible-latest/**'
11+
jobs:
12+
docker:
13+
runs-on: ubuntu-latest
14+
permissions:
15+
contents: read
16+
packages: write
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
dockerimage:
21+
- ubuntu2404-ansible
22+
platforms:
23+
- linux/amd64
24+
steps:
25+
-
26+
name: Checkout
27+
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
28+
-
29+
name: Set up QEMU
30+
uses: docker/setup-qemu-action@v3
31+
-
32+
name: Set up Docker Buildx
33+
uses: docker/setup-buildx-action@v3
34+
-
35+
name: Build and export to Docker
36+
uses: docker/build-push-action@v5
37+
with:
38+
context: ${{ matrix.dockerimage }}-latest
39+
tags: docker-${{ matrix.dockerimage }}:test
40+
load: true
41+
platforms: ${{ matrix.platforms }}
42+
-
43+
name: Test
44+
run: |
45+
docker run --rm docker-${{ matrix.dockerimage }}:test
46+
-
47+
name: Login to ghcr.io
48+
uses: docker/login-action@v3
49+
with:
50+
registry: ghcr.io
51+
username: ${{ github.actor }}
52+
password: ${{ secrets.GITHUB_TOKEN }}
53+
if: github.ref == 'refs/heads/master'
54+
-
55+
name: Build and push to ghcr.io
56+
uses: docker/build-push-action@v5
57+
with:
58+
context: ${{ matrix.dockerimage }}-latest
59+
push: true
60+
tags: ghcr.io/dev-sec/docker-${{ matrix.dockerimage }}:latest
61+
platforms: ${{ matrix.platforms }}
62+
if: github.ref == 'refs/heads/master'
63+
-
64+
name: Login to DockerHub
65+
uses: docker/login-action@v3
66+
with:
67+
username: ${{ secrets.DOCKERHUB_USERNAME }}
68+
password: ${{ secrets.DOCKERHUB_TOKEN }}
69+
if: github.ref == 'refs/heads/master'
70+
-
71+
name: Build and push
72+
uses: docker/build-push-action@v5
73+
with:
74+
context: ${{ matrix.dockerimage }}-latest
75+
push: true
76+
tags: ${{ secrets.DOCKERHUB_USERNAME }}/docker-${{ matrix.dockerimage }}:latest
77+
platforms: ${{ matrix.platforms }}
78+
if: github.ref == 'refs/heads/master'

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ They are meant for testing purposes and are mainly used for [dev-sec](https://gi
2020
| [Ubuntu 18.04][ubuntu] | [docker-ubuntu1804-ansible-latest][] | [ghcr.io/dev-sec/docker-ubuntu1804-ansible-latest][] | [rndmh3ro/docker-ubuntu1804-ansible-latest][] |
2121
| [Ubuntu 20.04][ubuntu] | [docker-ubuntu2004-ansible-latest][] | [ghcr.io/dev-sec/docker-ubuntu2004-ansible-latest][] | [rndmh3ro/docker-ubuntu2004-ansible-latest][] |
2222
| [Ubuntu 22.04][ubuntu] | [docker-ubuntu2204-ansible-latest][] | [ghcr.io/dev-sec/docker-ubuntu2204-ansible-latest][] | [rndmh3ro/docker-ubuntu2204-ansible-latest][] |
23+
| [Ubuntu 24.04][ubuntu] | [docker-ubuntu2404-ansible-latest][] | [ghcr.io/dev-sec/docker-ubuntu2404-ansible-latest][] | [rndmh3ro/docker-ubuntu2404-ansible-latest][] |
2324
| [Alpine][alpine] | [docker-alpine-ansible-latest][] | [ghcr.io/dev-sec/docker-alpine-ansible-latest][] | [rndmh3ro/docker-alpine-ansible-latest][] |
2425
| [Amazon Linux 2][amazon] | [docker-amazon2-ansible-latest][] | [ghcr.io/dev-sec/docker-amazon2-ansible-latest][] | [rndmh3ro/docker-amazon2-ansible-latest][] |
2526
| [Amazon Linux 2023][amazon] | [docker-amazon2023-ansible-latest][] | [ghcr.io/dev-sec/docker-amazon2023-ansible-latest][] | [rndmh3ro/docker-amazon2023-ansible-latest][] |
@@ -58,6 +59,7 @@ Sebastian Gumprich <github@gumpri.ch>
5859
[docker-ubuntu1804-ansible-latest]: https://github.com/rndmh3ro/docker-ansible/blob/master/ubuntu1804-ansible-latest/Dockerfile
5960
[docker-ubuntu2004-ansible-latest]: https://github.com/rndmh3ro/docker-ansible/blob/master/ubuntu2004-ansible-latest/Dockerfile
6061
[docker-ubuntu2204-ansible-latest]: https://github.com/rndmh3ro/docker-ansible/blob/master/ubuntu2204-ansible-latest/Dockerfile
62+
[docker-ubuntu2404-ansible-latest]: https://github.com/rndmh3ro/docker-ansible/blob/master/ubuntu2404-ansible-latest/Dockerfile
6163
[docker-alpine-ansible-latest]: https://github.com/rndmh3ro/docker-ansible/blob/master/alpine-ansible-latest/Dockerfile
6264
[docker-amazon2-ansible-latest]: https://github.com/rndmh3ro/docker-ansible/blob/master/amazon2-ansible-latest/Dockerfile
6365
[docker-amazon2023-ansible-latest]: https://github.com/rndmh3ro/docker-ansible/blob/master/amazon2023-ansible-latest/Dockerfile
@@ -80,6 +82,7 @@ Sebastian Gumprich <github@gumpri.ch>
8082
[ghcr.io/dev-sec/docker-ubuntu1804-ansible-latest]: https://github.com/dev-sec/docker-ansible/pkgs/container/docker-ubuntu1804-ansible
8183
[ghcr.io/dev-sec/docker-ubuntu2004-ansible-latest]: https://github.com/dev-sec/docker-ansible/pkgs/container/docker-ubuntu2004-ansible
8284
[ghcr.io/dev-sec/docker-ubuntu2204-ansible-latest]: https://github.com/dev-sec/docker-ansible/pkgs/container/docker-ubuntu2204-ansible
85+
[ghcr.io/dev-sec/docker-ubuntu2404-ansible-latest]: https://github.com/dev-sec/docker-ansible/pkgs/container/docker-ubuntu2404-ansible
8386
[ghcr.io/dev-sec/docker-alpine-ansible-latest]: https://github.com/dev-sec/docker-ansible/pkgs/container/docker-alpine-ansible
8487
[ghcr.io/dev-sec/docker-amazon2-ansible-latest]: https://github.com/dev-sec/docker-ansible/pkgs/container/docker-amazon2-ansible
8588
[ghcr.io/dev-sec/docker-amazon2023-ansible-latest]: https://github.com/dev-sec/docker-ansible/pkgs/container/docker-amazon2023-ansible
@@ -102,6 +105,7 @@ Sebastian Gumprich <github@gumpri.ch>
102105
[rndmh3ro/docker-ubuntu1804-ansible-latest]: https://hub.docker.com/r/rndmh3ro/docker-ubuntu1804-ansible
103106
[rndmh3ro/docker-ubuntu2004-ansible-latest]: https://hub.docker.com/r/rndmh3ro/docker-ubuntu2004-ansible
104107
[rndmh3ro/docker-ubuntu2204-ansible-latest]: https://hub.docker.com/r/rndmh3ro/docker-ubuntu2204-ansible
108+
[rndmh3ro/docker-ubuntu2404-ansible-latest]: https://hub.docker.com/r/rndmh3ro/docker-ubuntu2404-ansible
105109
[rndmh3ro/docker-alpine-ansible-latest]: https://hub.docker.com/r/rndmh3ro/docker-alpine-ansible
106110
[rndmh3ro/docker-amazon2-ansible-latest]: https://hub.docker.com/r/rndmh3ro/docker-amazon2-ansible
107111
[rndmh3ro/docker-amazon2023-ansible-latest]: https://hub.docker.com/r/rndmh3ro/docker-amazon2023-ansible
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
FROM ubuntu:24.04
2+
LABEL maintainer="Sebastian Gumprich"
3+
4+
# Install dependencies.
5+
RUN apt-get update \
6+
&& apt-get install -y --no-install-recommends \
7+
software-properties-common \
8+
rsyslog systemd systemd-cron sudo \
9+
&& rm -Rf /var/lib/apt/lists/* \
10+
&& rm -Rf /usr/share/doc && rm -Rf /usr/share/man \
11+
&& apt-get clean
12+
RUN sed -i 's/^\($ModLoad imklog\)/#\1/' /etc/rsyslog.conf
13+
14+
# Install Ansible
15+
RUN apt-get update \
16+
&& apt-get install -y --no-install-recommends \
17+
ansible \
18+
&& rm -rf /var/lib/apt/lists/* \
19+
&& rm -Rf /usr/share/doc && rm -Rf /usr/share/man \
20+
&& apt-get clean
21+
22+
# Install Ansible inventory file
23+
RUN mkdir /etc/ansible \
24+
&& echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts
25+
26+
# https://molecule.readthedocs.io/en/latest/examples.html#docker-with-non-privileged-user
27+
# Create `ansible` user with sudo permissions and membership in `DEPLOY_GROUP`
28+
# This template gets rendered using `loop: "{{ molecule_yml.platforms }}"`, so
29+
# each `item` is an element of platforms list from the molecule.yml file for this scenario.
30+
ENV ANSIBLE_USER=ansible DEPLOY_GROUP=deployer SUDO_GROUP=sudo
31+
RUN set -xe \
32+
&& groupadd -r ${ANSIBLE_USER} \
33+
&& groupadd -r ${DEPLOY_GROUP} \
34+
&& useradd -m -g ${ANSIBLE_USER} ${ANSIBLE_USER} \
35+
&& usermod -aG ${SUDO_GROUP} ${ANSIBLE_USER} \
36+
&& usermod -aG ${DEPLOY_GROUP} ${ANSIBLE_USER} \
37+
&& sed -i "/^%${SUDO_GROUP}/s/ALL\$/NOPASSWD:ALL/g" /etc/sudoers
38+
39+
# delete file created by systemd that prevents login via ssh
40+
RUN rm -f /{var/run,etc,run}/nologin
41+
42+
CMD [ "ansible-playbook", "--version" ]

0 commit comments

Comments
 (0)