Skip to content

Commit 8c9abf2

Browse files
committed
WIP on github workflows
1 parent 206c752 commit 8c9abf2

16 files changed

+44
-464
lines changed

.github/workflows/build.yml

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,25 @@ on:
55
workflow_dispatch:
66
# schedule:
77
# - cron: '0 0 * * *' # runs every day at midnight
8+
#
9+
defaults:
10+
run:
11+
shell: bash -euo pipefail {0}
812

913
jobs:
1014
build-and-push:
1115
runs-on: ubuntu-latest
16+
concurrency:
17+
group: ${{ github.repository }}-${{ github.workflow_ref }}-${{ matrix.alpine_version }}-build
18+
cancel-in-progress: false
19+
timeout-minutes: 60
1220
strategy:
21+
max-parallel: 64
22+
fail-fast: false
1323
matrix:
1424
alpine_version:
15-
- 2.7
25+
- latest
26+
- edge
1627
- 3.1
1728
- 3.2
1829
- 3.3
@@ -32,8 +43,6 @@ jobs:
3243
- 3.17
3344
- 3.18
3445
- 3.19
35-
- latest
36-
- edge
3746

3847
steps:
3948
- name: Check out code
@@ -43,22 +52,20 @@ jobs:
4352
uses: docker/setup-buildx-action@v3
4453

4554
- name: Login to Docker Hub
46-
run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
55+
run: docker login -u andrius -p ${{ secrets.DOCKERHUB_TOKEN }}
4756

4857
- name: Build and Push Image
4958
run: |
5059
if [ -f "Dockerfile-${{ matrix.alpine_version }}" ]; then
51-
DOCKERFILE=Dockerfile-${{ matrix.alpine_version }}
60+
DOCKERFILE="Dockerfile-${{ matrix.alpine_version }}"
5261
else
53-
DOCKERFILE=Dockerfile
62+
DOCKERFILE="Dockerfile"
5463
fi
5564
5665
docker buildx build \
5766
--push \
58-
--pull \
59-
--quiet \
6067
--platform linux/amd64,linux/arm64 \
6168
--tag andrius/alpine-ruby:${{ matrix.alpine_version }} \
6269
--build-arg ALPINE_VERSION=${{ matrix.alpine_version }} \
63-
--file $DOCKERFILE
70+
--file $DOCKERFILE \
6471
.

Dockerfile

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,36 @@ LABEL "org.opencontainers.image.authors"="Andrius Kairiukstis <[email protected]>"
66
LABEL "org.opencontainers.image.source"="https://github.com/andrius/alpine-ruby"
77
LABEL "org.opencontainers.image.description"="Minimal dockerized ruby based on alpine-linux"
88

9-
ENV NOKOGIRI_USE_SYSTEM_LIBRARIES=1
9+
RUN apk --no-cache add bash
1010

11-
ADD gemrc /root/.gemrc
11+
SHELL ["/bin/bash", "-c"]
1212

13-
RUN apk update && apk add \
13+
RUN apk --no-cache add \
14+
ca-certificates \
15+
less \
16+
libressl \
1417
ruby \
15-
ruby-etc \
1618
ruby-bigdecimal \
19+
ruby-etc \
1720
ruby-io-console \
18-
ruby-irb \
19-
ca-certificates \
20-
libressl \
21-
less \
22-
: \
23-
&& apk add --virtual .build-dependencies build-base ruby-dev libressl-dev \
24-
&& gem install bundler || apk add ruby-bundler \
25-
&& bundle config build.nokogiri --use-system-libraries \
26-
&& bundle config git.allow_insecure true \
27-
&& gem install json \
28-
: \
29-
&& gem cleanup \
30-
&& apk del .build-dependencies \
31-
&& rm -rf /usr/lib/ruby/gems/*/cache/* /var/cache/apk/* /tmp/* /var/tmp/*
21+
ruby-irb
22+
23+
# The following is needed for nokogiri
24+
ENV NOKOGIRI_USE_SYSTEM_LIBRARIES=1
25+
26+
# It tries to install ruby bundler with failback to apk version and nokoiri
27+
RUN <<EOF
28+
apk add --no-cache --virtual .build-dependencies build-base ruby-dev libressl-dev
29+
ERR=$(gem install bundler 2>&1);
30+
if [[ $ERR =~ \`(.+)\` ]]; then
31+
eval "${BASH_REMATCH[1]} 2>&1"
32+
fi || apk add ruby-bundler
33+
gem install json
34+
bundle config build.nokogiri --use-system-libraries
35+
bundle config git.allow_insecure true
36+
gem cleanup
37+
rm -rf /usr/lib/ruby/gems/*/cache/*
38+
apk del .build-dependencies
39+
EOF
40+
41+
COPY gemrc /root/.gemrc

Dockerfile-2.7

Lines changed: 0 additions & 35 deletions
This file was deleted.

Dockerfile-3.10

Lines changed: 0 additions & 33 deletions
This file was deleted.

Dockerfile-3.11

Lines changed: 0 additions & 33 deletions
This file was deleted.

Dockerfile-3.12

Lines changed: 0 additions & 33 deletions
This file was deleted.

Dockerfile-3.13

Lines changed: 0 additions & 33 deletions
This file was deleted.

Dockerfile-3.5

Lines changed: 0 additions & 32 deletions
This file was deleted.

Dockerfile-3.6

Lines changed: 0 additions & 32 deletions
This file was deleted.

Dockerfile-3.7

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)