ci: use locally built gem file for testing Docker image build

This commit is contained in:
cn 2021-04-16 18:11:23 +02:00 committed by Christian Nicolai
parent 199ccf7665
commit 6afed2049a
4 changed files with 27 additions and 2 deletions

View File

@ -27,6 +27,7 @@ jobs:
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Lint and Test
run: |
bundle exec rake ci
@ -38,4 +39,5 @@ jobs:
- name: Test building Docker image for dyndnsd
uses: docker/build-push-action@v2
with:
context: docker
context: .
file: docker/ci/Dockerfile

View File

@ -29,4 +29,4 @@ end
task default: [:rubocop, :spec, 'bundle:audit', :solargraph]
desc 'Run all tasks desired for CI'
task ci: ['solargraph:init', :default, :hadolint]
task ci: ['solargraph:init', :default, :hadolint, :build]

View File

@ -8,6 +8,7 @@ RUN apk --no-cache add openssl ca-certificates && \
apk --no-cache add ruby ruby-etc ruby-io-console ruby-json ruby-webrick && \
apk --no-cache add --virtual .build-deps linux-headers ruby-dev build-base tzdata && \
gem install --no-document dyndnsd -v ${DYNDNSD_VERSION} && \
rm -rf /usr/lib/ruby/gems/*/cache/ && \
# set timezone to Berlin
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \
apk del .build-deps

22
docker/ci/Dockerfile Normal file
View File

@ -0,0 +1,22 @@
FROM alpine:3.13.5
EXPOSE 5353 8080
COPY pkg/dyndnsd-*.gem /tmp/dyndnsd.gem
RUN apk --no-cache add openssl ca-certificates && \
apk --no-cache add ruby ruby-etc ruby-io-console ruby-json ruby-webrick && \
apk --no-cache add --virtual .build-deps linux-headers ruby-dev build-base tzdata && \
gem install --no-document /tmp/dyndnsd.gem && \
rm -rf /usr/lib/ruby/gems/*/cache/ && \
# set timezone to Berlin
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \
apk del .build-deps
# Follow the principle of least privilege: run as unprivileged user.
# Running as non-root enables running this image in platforms like OpenShift
# that do not allow images running as root.
# User ID 65534 is usually user 'nobody'.
USER 65534
ENTRYPOINT ["dyndnsd", "/etc/dyndnsd/config.yml"]