Skip to content

Commit 36c9592

Browse files
authored
Merge pull request #9 from phase2/update-images
Update images for PHP 8
2 parents 5adc164 + 893c7f0 commit 36c9592

File tree

8 files changed

+177
-80
lines changed

8 files changed

+177
-80
lines changed

.github/workflows/default.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
name: "build images"
3+
4+
on:
5+
push:
6+
branches:
7+
- master
8+
workflow_dispatch:
9+
pull_request:
10+
schedule:
11+
- cron: '0 16 * * 0' # Every Sunday at 4PM
12+
13+
env:
14+
DOCKERHUB_ORG: ${{ secrets.DOCKERHUB_ORG }}
15+
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
16+
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
17+
18+
jobs:
19+
build:
20+
name: "Build: ${{ matrix.version }}"
21+
runs-on: ubuntu-20.04
22+
23+
strategy:
24+
fail-fast: false # Don't cancel other jobs if one fails
25+
matrix:
26+
include:
27+
- version: "7.4"
28+
- version: "8.0"
29+
- version: "8.1"
30+
env:
31+
VERSION: ${{ matrix.version }}
32+
33+
steps:
34+
- name: Dump GitHub context
35+
env:
36+
GITHUB_CONTEXT: ${{ toJSON(github) }}
37+
run: echo "$GITHUB_CONTEXT"
38+
39+
- name: Checkout
40+
uses: actions/checkout@v2
41+
42+
- name: Prepare Tags
43+
id: prep
44+
run: |
45+
DOCKERHUB_IMAGE=${DOCKERHUB_ORG}/${GITHUB_REPOSITORY#*/}
46+
GITHUB_IMAGE=${{ github.repository_owner }}/${GITHUB_REPOSITORY#*/}
47+
VERSION=php${{ matrix.version }}
48+
49+
TAGS="ghcr.io/${GITHUB_IMAGE}:${VERSION}"
50+
# Only push to Dockerhub if secrets are set.
51+
if [ ! -z "${DOCKERHUB_ORG}" ]; then
52+
TAGS="$TAGS,${DOCKERHUB_IMAGE}:${VERSION}"
53+
fi
54+
55+
# Set output parameters.
56+
echo ::set-output name=tags::${TAGS}
57+
58+
- name: Set up QEMU
59+
uses: docker/setup-qemu-action@v1
60+
with:
61+
platforms: all
62+
63+
- name: Set up Docker Buildx
64+
id: buildx
65+
uses: docker/setup-buildx-action@v1
66+
67+
- name: Login to DockerHub
68+
if: ${{ github.event_name != 'pull_request' && env.DOCKERHUB_ORG != '' }}
69+
uses: docker/login-action@v1
70+
with:
71+
username: ${{ secrets.DOCKERHUB_USER }}
72+
password: ${{ secrets.DOCKERHUB_TOKEN }}
73+
74+
- name: Login to GitHub Container Registry
75+
if: ${{ github.event_name != 'pull_request' }}
76+
uses: docker/login-action@v1
77+
with:
78+
registry: ghcr.io
79+
username: ${{ github.repository_owner }}
80+
password: ${{ secrets.GITHUB_TOKEN }}
81+
82+
- name: Build
83+
uses: docker/build-push-action@v2
84+
with:
85+
builder: ${{ steps.buildx.outputs.name }}
86+
context: ./src
87+
file: ./src/Dockerfile
88+
build-args: CLI_VERSION=php${{ matrix.version }}
89+
platforms: linux/amd64,linux/arm64
90+
push: ${{ github.event_name != 'pull_request' }}
91+
tags: ${{ steps.prep.outputs.tags }}

.hadolint.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ignored:
2+
- DL4001

Dockerfile

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

build.sh

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
#!/bin/sh
22

3-
set -e
3+
set -ex
44

5-
# Arguments: $1 tag, $2 CLI_VERSION
6-
build() {
7-
docker build \
8-
--build-arg CLI_VERSION="${2}-${1}" \
9-
-t outrigger/cli:"${2}-${1}" \
10-
.
11-
}
12-
13-
build "php7.2" "2.10"
14-
15-
for tag in "php7.3" "php7.4"; do
16-
build $tag "2.12"
17-
done
5+
# Arguments: $1 CLI_VERSION
6+
docker build --build-arg CLI_VERSION=php"${1:-8.0}" -t phase2/docker-cli:php"${1:-8.0}" ./src

hooks/build

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

hooks/post_push

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

src/Dockerfile

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
ARG CLI_VERSION={{cli_version}}
2+
3+
# Extend the Docksal CLI per https://docs.docksal.io/stack/extend-images/
4+
FROM docksal/cli:${CLI_VERSION}
5+
6+
# See https://github.com/hadolint/hadolint/wiki/DL4006
7+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
8+
9+
ARG HELM_VERSION=v2.17.0
10+
11+
# Install kubectl and helm client
12+
RUN curl -o /usr/local/bin/kubectl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/$(dpkg --print-architecture)/kubectl" && \
13+
chmod +x /usr/local/bin/kubectl && \
14+
curl -o ./install_helm.sh https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get && \
15+
chmod +x ./install_helm.sh && \
16+
./install_helm.sh -v ${HELM_VERSION} && \
17+
helm init --client-only
18+
19+
# Also install helm3 as `helm3`
20+
RUN curl -s https://get.helm.sh/helm-v3.6.2-linux-"$(dpkg --print-architecture)".tar.gz | sudo tar -C /tmp --no-same-owner -xvzf - linux-"$(dpkg --print-architecture)"/helm --strip-components 1 && \
21+
mv /tmp/helm /bin/helm3
22+
23+
# Install Kustomize
24+
# https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/
25+
RUN cd /bin/ && curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
26+
27+
# Install AWS cli
28+
COPY awscli.pubkey /tmp/
29+
RUN curl https://awscli.amazonaws.com/awscli-exe-linux-"$(uname -m)".zip -o "awscliv2.zip" && \
30+
gpg --import /tmp/awscli.pubkey && \
31+
curl -s -o awscliv2.sig https://awscli.amazonaws.com/awscli-exe-linux-"$(uname -m)".zip.sig && \
32+
gpg --verify awscliv2.sig awscliv2.zip && \
33+
unzip -q awscliv2.zip && \
34+
./aws/install && \
35+
rm awscliv2.zip && rm -rf aws
36+
37+
# Install yq
38+
# https://mikefarah.gitbook.io/yq/#wget
39+
RUN wget https://github.com/mikefarah/yq/releases/download/v4.21.1/yq_linux_"$(dpkg --print-architecture)".tar.gz -O - |\
40+
tar xz && mv yq_linux_"$(dpkg --print-architecture)" /usr/bin/yq
41+
42+
# All further commands will be performed as the docker user.
43+
USER docker
44+
SHELL ["/bin/bash", "-c"]
45+
46+
# Install additional global npm dependencies
47+
RUN \
48+
# Initialize the user environment (this loads nvm)
49+
. "$HOME"/.profile
50+
51+
# IMPORTANT! Switching back to the root user as the last instruction.
52+
USER root

src/awscli.pubkey

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
3+
mQINBF2Cr7UBEADJZHcgusOJl7ENSyumXh85z0TRV0xJorM2B/JL0kHOyigQluUG
4+
ZMLhENaG0bYatdrKP+3H91lvK050pXwnO/R7fB/FSTouki4ciIx5OuLlnJZIxSzx
5+
PqGl0mkxImLNbGWoi6Lto0LYxqHN2iQtzlwTVmq9733zd3XfcXrZ3+LblHAgEt5G
6+
TfNxEKJ8soPLyWmwDH6HWCnjZ/aIQRBTIQ05uVeEoYxSh6wOai7ss/KveoSNBbYz
7+
gbdzoqI2Y8cgH2nbfgp3DSasaLZEdCSsIsK1u05CinE7k2qZ7KgKAUIcT/cR/grk
8+
C6VwsnDU0OUCideXcQ8WeHutqvgZH1JgKDbznoIzeQHJD238GEu+eKhRHcz8/jeG
9+
94zkcgJOz3KbZGYMiTh277Fvj9zzvZsbMBCedV1BTg3TqgvdX4bdkhf5cH+7NtWO
10+
lrFj6UwAsGukBTAOxC0l/dnSmZhJ7Z1KmEWilro/gOrjtOxqRQutlIqG22TaqoPG
11+
fYVN+en3Zwbt97kcgZDwqbuykNt64oZWc4XKCa3mprEGC3IbJTBFqglXmZ7l9ywG
12+
EEUJYOlb2XrSuPWml39beWdKM8kzr1OjnlOm6+lpTRCBfo0wa9F8YZRhHPAkwKkX
13+
XDeOGpWRj4ohOx0d2GWkyV5xyN14p2tQOCdOODmz80yUTgRpPVQUtOEhXQARAQAB
14+
tCFBV1MgQ0xJIFRlYW0gPGF3cy1jbGlAYW1hem9uLmNvbT6JAlQEEwEIAD4WIQT7
15+
Xbd/1cEYuAURraimMQrMRnJHXAUCXYKvtQIbAwUJB4TOAAULCQgHAgYVCgkICwIE
16+
FgIDAQIeAQIXgAAKCRCmMQrMRnJHXJIXEAChLUIkg80uPUkGjE3jejvQSA1aWuAM
17+
yzy6fdpdlRUz6M6nmsUhOExjVIvibEJpzK5mhuSZ4lb0vJ2ZUPgCv4zs2nBd7BGJ
18+
MxKiWgBReGvTdqZ0SzyYH4PYCJSE732x/Fw9hfnh1dMTXNcrQXzwOmmFNNegG0Ox
19+
au+VnpcR5Kz3smiTrIwZbRudo1ijhCYPQ7t5CMp9kjC6bObvy1hSIg2xNbMAN/Do
20+
ikebAl36uA6Y/Uczjj3GxZW4ZWeFirMidKbtqvUz2y0UFszobjiBSqZZHCreC34B
21+
hw9bFNpuWC/0SrXgohdsc6vK50pDGdV5kM2qo9tMQ/izsAwTh/d/GzZv8H4lV9eO
22+
tEis+EpR497PaxKKh9tJf0N6Q1YLRHof5xePZtOIlS3gfvsH5hXA3HJ9yIxb8T0H
23+
QYmVr3aIUes20i6meI3fuV36VFupwfrTKaL7VXnsrK2fq5cRvyJLNzXucg0WAjPF
24+
RrAGLzY7nP1xeg1a0aeP+pdsqjqlPJom8OCWc1+6DWbg0jsC74WoesAqgBItODMB
25+
rsal1y/q+bPzpsnWjzHV8+1/EtZmSc8ZUGSJOPkfC7hObnfkl18h+1QtKTjZme4d
26+
H17gsBJr+opwJw/Zio2LMjQBOqlm3K1A4zFTh7wBC7He6KPQea1p2XAMgtvATtNe
27+
YLZATHZKTJyiqA==
28+
=vYOk
29+
-----END PGP PUBLIC KEY BLOCK-----

0 commit comments

Comments
 (0)