Skip to content

Commit 51b31f8

Browse files
committed
feat: make it rootless
1 parent 574131f commit 51b31f8

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

.github/workflows/ci.yaml

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,24 @@ jobs:
6969
with:
7070
repository: voxpupuli/puppet-example
7171

72+
- name: Configure podman
73+
run: |
74+
systemctl start --user podman.socket
75+
echo "DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock" >> "$GITHUB_ENV"
76+
docker save ci/voxbox:${{ matrix.rubygem_puppet }} | podman load
77+
7278
- name: Test container
7379
run: |
74-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile -T
75-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile lint
76-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile metadata_lint
77-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile r10k:dependencies
78-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile r10k:syntax
79-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile rubocop
80-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile spec
81-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile strings:validate:reference
82-
docker run --rm -v $PWD:/repo:Z ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile syntax
80+
export PODMAN_OPTIONS="--rm -v $PWD:/repo:Z --userns=keep-id"
81+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile -T
82+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile lint
83+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile metadata_lint
84+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile r10k:dependencies
85+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile r10k:syntax
86+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile rubocop
87+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile spec
88+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile strings:validate:reference
89+
podman run $PODMAN_OPTIONS ci/voxbox:${{ matrix.rubygem_puppet }} -f /Rakefile syntax
8390
8491
tests:
8592
needs:

Containerfile

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,22 +89,21 @@ LABEL org.label-schema.maintainer="Voxpupuli Team <[email protected]>" \
8989
org.label-schema.dockerfile="/Containerfile"
9090

9191
RUN apk update \
92-
&& apk upgrade \
93-
&& apk add openssh-client \
94-
&& apk add gpg \
95-
&& apk add jq \
96-
&& apk add yamllint \
97-
&& apk add git \
98-
&& apk add curl \
99-
&& rm -rf /var/cache/apk/* \
100-
&& rm -rf /usr/local/lib/ruby/gems
92+
&& apk upgrade --no-cache --prune \
93+
&& apk add --no-cache openssh-client gpg jq yamllint git curl \
94+
&& addgroup -g 1001 -S voxbox \
95+
&& adduser -u 1001 -S -G voxbox voxbox \
96+
&& rm -rf /usr/local/lib/ruby/gems \
97+
&& mkdir /repo \
98+
&& chown voxbox:voxbox /repo
10199

102100
COPY --from=builder /usr/local/lib/ruby/gems /usr/local/lib/ruby/gems
103101
COPY --from=builder /usr/local/bundle /usr/local/bundle
104102
COPY Containerfile /
105103
COPY voxbox/Rakefile /
106104

107105
WORKDIR /repo
106+
USER voxbox
108107

109108
ENTRYPOINT [ "rake" ]
110109
CMD [ "-f", "/Rakefile", "-T" ]

0 commit comments

Comments
 (0)