Skip to content

Commit

Permalink
Merge pull request #7 from compose-generator/dev
Browse files Browse the repository at this point in the history
Release of version 1.1.0
  • Loading branch information
marcauberer authored Oct 22, 2021
2 parents 6eb7a59 + beb91e9 commit 55f8563
Show file tree
Hide file tree
Showing 10 changed files with 351 additions and 18 deletions.
54 changes: 53 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,59 @@
version: 2
updates:
- package-ecosystem: docker
directory: /
directory: /amd64
schedule:
interval: daily
time: "04:00"
timezone: Europe/Berlin
open-pull-requests-limit: 15
target-branch: dev
reviewers:
- marcauberer
assignees:
- marcauberer

- package-ecosystem: docker
directory: /i386
schedule:
interval: daily
time: "04:00"
timezone: Europe/Berlin
open-pull-requests-limit: 15
target-branch: dev
reviewers:
- marcauberer
assignees:
- marcauberer

- package-ecosystem: docker
directory: /armv6
schedule:
interval: daily
time: "04:00"
timezone: Europe/Berlin
open-pull-requests-limit: 15
target-branch: dev
reviewers:
- marcauberer
assignees:
- marcauberer

- package-ecosystem: docker
directory: /armv7
schedule:
interval: daily
time: "04:00"
timezone: Europe/Berlin
open-pull-requests-limit: 15
target-branch: dev
reviewers:
- marcauberer
assignees:
- marcauberer

- package-ecosystem: docker
directory: /arm64
schedule:
interval: daily
time: "04:00"
Expand Down
72 changes: 67 additions & 5 deletions .github/workflows/publish-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,39 @@ name: Publish Dev
on:
push:
branches: [ main, dev ]
paths:
- 'Dockerfile'
# paths:
# - './amd64/Dockerfile'
# - './i386/Dockerfile'
# - './armv6/Dockerfile'
# - './armv7/Dockerfile'
# - './arm64/Dockerfile'

jobs:
release:
build:
runs-on: ubuntu-latest
strategy:
matrix:
arch:
- {
name: amd64,
docker-arch: linux/amd64
}
- {
name: i386,
docker-arch: linux/i386
}
- {
name: armv6,
docker-arch: linux/arm/v6
}
- {
name: armv7,
docker-arch: linux/arm/v7
}
- {
name: arm64,
docker-arch: linux/arm64/v8
}
steps:
- name: Checkout
uses: actions/checkout@v2
Expand All @@ -34,5 +61,40 @@ jobs:
username: chillibits
password: ${{ secrets.DOCKER_HUB_SECRET }}

- name: Build Docker image and push to registries # ToDo: ,linux/i386,linux/arm/v5,linux/arm/v6,linux/arm/v7,linux/arm64/v8
run: docker buildx build --push --platform linux/amd64 -t ghcr.io/compose-generator/compose-generator-toolbox:dev -t chillibits/compose-generator-toolbox:dev .
- name: Build Docker image and push to registries
working-directory: ./${{ matrix.arch.name }}
run: |
docker buildx build --push --platform ${{ matrix.arch.docker-arch }} \
-t ghcr.io/compose-generator/compose-generator-toolbox:${{ matrix.arch.name }}-dev \
-t chillibits/compose-generator-toolbox:${{ matrix.arch.name }}-dev .
manifest:
runs-on: ubuntu-latest
needs: build
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Docker login GHCR
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}

- name: Docker login Docker Hub
uses: docker/login-action@v1
with:
registry: docker.io
username: chillibits
password: ${{ secrets.DOCKER_HUB_SECRET }}

- name: Build manifest Docker Hub
run: |
docker manifest create chillibits/compose-generator-toolbox:dev \
chillibits/compose-generator-toolbox:amd64-dev \
chillibits/compose-generator-toolbox:i386-dev \
chillibits/compose-generator-toolbox:armv6-dev \
chillibits/compose-generator-toolbox:armv7-dev \
chillibits/compose-generator-toolbox:arm64-dev
docker manifest push chillibits/compose-generator-toolbox:dev
94 changes: 91 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,31 @@ on:
- '*'

jobs:
release:
build:
runs-on: ubuntu-latest
strategy:
matrix:
arch:
- {
name: amd64,
docker-arch: linux/amd64
}
- {
name: i386,
docker-arch: linux/i386
}
- {
name: armv6,
docker-arch: linux/arm/v6
}
- {
name: armv7,
docker-arch: linux/arm/v7
}
- {
name: arm64,
docker-arch: linux/arm64/v8
}
steps:
- name: Get version name
id: get_version
Expand Down Expand Up @@ -37,5 +60,70 @@ jobs:
username: chillibits
password: ${{ secrets.DOCKER_HUB_SECRET }}

- name: Build Docker image and push to registries # ToDo: ,linux/i386,linux/arm/v5,linux/arm/v6,linux/arm/v7,linux/arm64/v8
run: docker buildx build --push --platform linux/amd64 -t ghcr.io/compose-generator/compose-generator-toolbox:latest -t ghcr.io/compose-generator/compose-generator-toolbox:${{ steps.get_version.outputs.version }} -t chillibits/compose-generator-toolbox:latest -t chillibits/compose-generator-toolbox:${{ steps.get_version.outputs.version }} .
- name: Build Docker image and push to registries
working-directory: ./${{ matrix.arch.name }}
run: |
docker buildx build --push --platform ${{ matrix.arch.docker-arch }} \
-t ghcr.io/compose-generator/compose-generator-toolbox:${{ matrix.arch.name }}-${{ steps.get_version.outputs.version }} \
-t chillibits/compose-generator-toolbox:${{ matrix.arch.name }}-${{ steps.get_version.outputs.version }} .
manifest:
runs-on: ubuntu-latest
needs: build
steps:
- name: Get version name
id: get_version
uses: battila7/get-version-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Docker login GHCR
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}

- name: Docker login Docker Hub
uses: docker/login-action@v1
with:
registry: docker.io
username: chillibits
password: ${{ secrets.DOCKER_HUB_SECRET }}

- name: Build manifest Docker Hub
run: |
docker manifest create chillibits/compose-generator-toolbox:latest \
chillibits/compose-generator-toolbox:amd64-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:i386-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:armv6-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:armv7-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:arm64-${{ steps.get_version.outputs.version }} \
docker manifest push chillibits/compose-generator-toolbox:latest
docker manifest create chillibits/compose-generator-toolbox:${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:amd64-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:i386-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:armv6-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:armv7-${{ steps.get_version.outputs.version }} \
chillibits/compose-generator-toolbox:arm64-${{ steps.get_version.outputs.version }} \
docker manifest push chillibits/compose-generator-toolbox:${{ steps.get_version.outputs.version }}
- name: Build manifest DHCR
run: |
docker manifest create ghcr.io/chillibits/compose-generator-toolbox:latest \
ghcr.io/chillibits/compose-generator-toolbox:amd64-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:i386-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:armv6-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:armv7-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:arm64-${{ steps.get_version.outputs.version }} \
docker manifest push ghcr.io/chillibits/compose-generator-toolbox:latest
docker manifest create ghcr.io/chillibits/compose-generator-toolbox:${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:amd64-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:i386-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:armv6-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:armv7-${{ steps.get_version.outputs.version }} \
ghcr.io/chillibits/compose-generator-toolbox:arm64-${{ steps.get_version.outputs.version }} \
docker manifest push ghcr.io/chillibits/compose-generator-toolbox:${{ steps.get_version.outputs.version }}
24 changes: 20 additions & 4 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@ name: Dockerfile Validation

on:
push:
paths:
- 'Dockerfile'
# paths:
# - './amd64/Dockerfile'
# - './i386/Dockerfile'
# - './armv6/Dockerfile'
# - './armv7/Dockerfile'
# - './arm64/Dockerfile'

jobs:
build:
Expand All @@ -13,5 +17,17 @@ jobs:
- name: Checkout code
uses: actions/checkout@v2

- name: Lint Dockerfile
run: docker run --rm -i hadolint/hadolint < Dockerfile
- name: Lint Dockerfile (amd64)
run: docker run --rm -i hadolint/hadolint < ./amd64/Dockerfile

- name: Lint Dockerfile (i386)
run: docker run --rm -i hadolint/hadolint < ./i386/Dockerfile

- name: Lint Dockerfile (armv6)
run: docker run --rm -i hadolint/hadolint < ./armv6/Dockerfile

- name: Lint Dockerfile (armv7)
run: docker run --rm -i hadolint/hadolint < ./armv7/Dockerfile

- name: Lint Dockerfile (arm64)
run: docker run --rm -i hadolint/hadolint < ./arm64/Dockerfile
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ Please note, that this Docker image is based on Linux Alpine and only supports a
- create-react-app
- curl
- django-admin
- dotnet
- dotnet (not for armv6, armv7, arm64)
- git
- go
- go (not for i386)
- make
- ng
- npm
Expand Down
7 changes: 4 additions & 3 deletions Dockerfile → amd64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ RUN apk update && apk add --no-cache sudo=1.9.7_p1-r1 bash=5.1.4-r0 curl=7.79.1-
&& rm -rf /var/cache/apk/*

# Install required npm packages
RUN yarn global add @angular/cli @vue/cli create-react-app express-generator && yarn cache clean --all
RUN yarn config set network-timeout 600000 -g && yarn global add @angular/cli @vue/cli create-react-app express-generator && yarn cache clean --all

# Install pip dependencies
RUN pip3 install --no-cache-dir flask-now==0.2.2 django==3.2.8
Expand All @@ -18,7 +18,7 @@ RUN gem install rails:6.1.4.1 && gem cleanup
# Install golang
RUN apk add --no-cache --virtual .build-deps gcc=10.3.1_git20210424-r2 musl-dev=1.2.2-r3 go=1.16.8-r0 openssl=1.1.1l-r0 \
&& rm -rf /var/cache/apk/* \
&& curl -sSL -o go.tar.gz https://golang.org/dl/go1.17.1.src.tar.gz \
&& curl -sSL -o go.tar.gz https://golang.org/dl/go1.17.2.src.tar.gz \
&& tar -C /usr/local -xzf go.tar.gz && rm go.tar.gz
WORKDIR /usr/local/go/src/
RUN ./make.bash && apk del .build-deps
Expand All @@ -29,6 +29,7 @@ ENV PATH=$PATH:$GOPATH/bin
# Install dotnet
RUN curl -sSL -o dotnet-install.sh https://dot.net/v1/dotnet-install.sh && chmod +x dotnet-install.sh && bash dotnet-install.sh && rm dotnet-install.sh
ENV PATH "/root/.dotnet:${PATH}"
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1

WORKDIR /toolbox
ENTRYPOINT [ "/bin/bash", "-c"]
ENTRYPOINT [ "/bin/bash", "-c"]
30 changes: 30 additions & 0 deletions arm64/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
FROM alpine:3.14.2

# Install alpine packages
RUN apk update && apk add --no-cache sudo=1.9.7_p1-r1 bash=5.1.4-r0 curl=7.79.1-r0 git=2.32.0-r0 npm=7.17.0-r0 yarn=1.22.10-r0 \
unzip=6.0-r9 python3=3.9.5-r1 py3-pip=20.3.4-r1 rust=1.52.1-r1 ruby=2.7.4-r0 ruby-dev=2.7.4-r0 ruby-etc=2.7.4-r0 make=4.3-r0 \
zlib-dev=1.2.11-r3 icu-libs=67.1-r2 krb5-libs=1.18.4-r0 libgcc=10.3.1_git20210424-r2 libintl=0.21-r0 libssl1.1=1.1.1l-r0 libstdc++=10.3.1_git20210424-r2 \
&& rm -rf /var/cache/apk/*

# Install required npm packages
RUN yarn config set network-timeout 600000 -g && yarn global add @angular/cli @vue/cli create-react-app express-generator && yarn cache clean --all

# Install pip dependencies
RUN pip3 install --no-cache-dir flask-now==0.2.2 django==3.2.8

# Install gem packages
RUN gem install rails:6.1.4.1 && gem cleanup

# Install golang
RUN apk add --no-cache --virtual .build-deps gcc=10.3.1_git20210424-r2 musl-dev=1.2.2-r3 go=1.16.8-r0 openssl=1.1.1l-r0 \
&& rm -rf /var/cache/apk/* \
&& curl -sSL -o go.tar.gz https://golang.org/dl/go1.17.2.src.tar.gz \
&& tar -C /usr/local -xzf go.tar.gz && rm go.tar.gz
WORKDIR /usr/local/go/src/
RUN ./make.bash && apk del .build-deps
ENV PATH="/usr/local/go/bin:$PATH"
ENV GOPATH=/opt/go/
ENV PATH=$PATH:$GOPATH/bin

WORKDIR /toolbox
ENTRYPOINT [ "/bin/bash", "-c"]
30 changes: 30 additions & 0 deletions armv6/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
FROM alpine:3.14.2

# Install alpine packages
RUN apk update && apk add --no-cache sudo=1.9.7_p1-r1 bash=5.1.4-r0 curl=7.79.1-r0 git=2.32.0-r0 npm=7.17.0-r0 yarn=1.22.10-r0 \
unzip=6.0-r9 python3=3.9.5-r1 py3-pip=20.3.4-r1 rust=1.52.1-r1 ruby=2.7.4-r0 ruby-dev=2.7.4-r0 ruby-etc=2.7.4-r0 make=4.3-r0 \
zlib-dev=1.2.11-r3 icu-libs=67.1-r2 krb5-libs=1.18.4-r0 libgcc=10.3.1_git20210424-r2 libintl=0.21-r0 libssl1.1=1.1.1l-r0 libstdc++=10.3.1_git20210424-r2 \
&& rm -rf /var/cache/apk/*

# Install required npm packages
RUN yarn config set network-timeout 600000 -g && yarn global add @angular/cli @vue/cli create-react-app express-generator && yarn cache clean --all

# Install pip dependencies
RUN pip3 install --no-cache-dir flask-now==0.2.2 django==3.2.8

# Install gem packages
RUN gem install rails:6.1.4.1 && gem cleanup

# Install golang
RUN apk add --no-cache --virtual .build-deps gcc=10.3.1_git20210424-r2 musl-dev=1.2.2-r3 go=1.16.8-r0 openssl=1.1.1l-r0 \
&& rm -rf /var/cache/apk/* \
&& curl -sSL -o go.tar.gz https://golang.org/dl/go1.17.2.src.tar.gz \
&& tar -C /usr/local -xzf go.tar.gz && rm go.tar.gz
WORKDIR /usr/local/go/src/
RUN ./make.bash && apk del .build-deps
ENV PATH="/usr/local/go/bin:$PATH"
ENV GOPATH=/opt/go/
ENV PATH=$PATH:$GOPATH/bin

WORKDIR /toolbox
ENTRYPOINT [ "/bin/bash", "-c"]
Loading

0 comments on commit 55f8563

Please sign in to comment.