Skip to content

Commit

Permalink
Merge pull request #321 from docksal/develop
Browse files Browse the repository at this point in the history
Release 3.8.0
  • Loading branch information
lmakarov committed Apr 19, 2024
2 parents a88caa0 + ae8d449 commit 3222ff4
Show file tree
Hide file tree
Showing 13 changed files with 124 additions and 99 deletions.
2 changes: 1 addition & 1 deletion .github/scripts/docker-tags.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ set_output() {
# Print with new lines for output in build logs
(IFS=$'\n'; echo "${outputArr[*]}")
# Using newlines in output variables does not seem to work, so we'll use comas
(IFS=$','; echo "::set-output name=tags::${outputArr[*]}")
(IFS=$','; echo tags="${outputArr[*]}" | tee -a ${GITHUB_OUTPUT})
}

# Image tags
Expand Down
48 changes: 24 additions & 24 deletions .github/workflows/default.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: Docker Build and Push
name: Build, Test, Push

on:
schedule:
- cron: '0 10 * * 0' # Every Sunday at 10AM
- cron: "0 10 * * 0" # Every Sunday at 10AM
push:
branches:
- master
- develop
- feature/*
tags:
- 'v*.*.*'
- "v*.*.*"
workflow_dispatch: # Allow manually triggering a build

defaults:
Expand All @@ -19,7 +19,7 @@ defaults:
env:
IMAGE: docksal/cli
UPSTREAM_IMAGE: debian
LATEST_VERSION: '8.2'
LATEST_VERSION: "8.3"
DOCKSAL_VERSION: develop

jobs:
Expand All @@ -34,27 +34,27 @@ jobs:
-
platform: linux/amd64
arch: amd64
version: '8.1'
version: "8.1"
-
platform: linux/amd64
arch: amd64
version: '8.2'
version: "8.2"
-
platform: linux/amd64
arch: amd64
version: '8.3'
version: "8.3"
-
platform: linux/arm64
arch: arm64
version: '8.1'
version: "8.1"
-
platform: linux/arm64
arch: arm64
version: '8.2'
version: "8.2"
-
platform: linux/arm64
arch: arm64
version: '8.3'
version: "8.3"

env:
ARCH: ${{ matrix.arch }}
Expand All @@ -76,9 +76,10 @@ jobs:
echo ARM64_HOST_SSH_CERT="$(ssh-keyscan -t rsa ${{ secrets.ARM64_HOST }} 2>/dev/null)" | tee -a ${GITHUB_ENV}
-
# Switch docker context to a remote arm64 host
# Used for building heavy images that take too long to build using QEMU + for native arm64 testing.
name: Switch to arm64 builder host
if: ${{ env.ARCH == 'arm64' }}
uses: arwynfr/actions-docker-context@v2
uses: docksal/actions/docker-context@main
with:
docker_host: "ssh://build-agent@${{ secrets.ARM64_HOST }}"
context_name: arm64-host
Expand Down Expand Up @@ -123,27 +124,27 @@ jobs:
-
platform: linux/amd64
arch: amd64
version: '8.1'
version: "8.1"
-
platform: linux/amd64
arch: amd64
version: '8.2'
version: "8.2"
-
platform: linux/amd64
arch: amd64
version: '8.3'
version: "8.3"
-
platform: linux/arm64
arch: arm64
version: '8.1'
version: "8.1"
-
platform: linux/arm64
arch: arm64
version: '8.2'
version: "8.2"
-
platform: linux/arm64
arch: arm64
version: '8.3'
version: "8.3"

env:
ARCH: ${{ matrix.arch }}
Expand All @@ -153,9 +154,7 @@ jobs:
steps:
-
name: Setup Bats
uses: mig4/setup-bats@v1
with:
bats-version: '1.3.0'
uses: bats-core/bats-action@2.0.0
-
name: Checkout
uses: actions/checkout@v4
Expand All @@ -170,9 +169,10 @@ jobs:
echo ARM64_HOST_SSH_CERT="$(ssh-keyscan -t rsa ${{ secrets.ARM64_HOST }} 2>/dev/null)" | tee -a ${GITHUB_ENV}
-
# Switch docker context to a remote arm64 host
# Used for building heavy images that take too long to build using QEMU + for native arm64 testing.
name: Switch to arm64 builder host
if: ${{ env.ARCH == 'arm64' }}
uses: arwynfr/actions-docker-context@v2
uses: docksal/actions/docker-context@main
with:
docker_host: "ssh://build-agent@${{ secrets.ARM64_HOST }}"
context_name: arm64-host
Expand Down Expand Up @@ -219,9 +219,9 @@ jobs:
strategy:
matrix:
version:
- '8.1'
- '8.2'
- '8.3'
- "8.1"
- "8.2"
- "8.3"

env:
VERSION_PREFIX: php
Expand Down
33 changes: 18 additions & 15 deletions 8.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM php:8.1.27-fpm-bookworm as cli
FROM php:8.1.28-fpm-bookworm as cli

ARG TARGETARCH
ARG DEBIAN_FRONTEND=noninteractive
Expand Down Expand Up @@ -240,16 +240,16 @@ RUN set -xe; \
ENV \
COMPOSER_DEFAULT_VERSION=2 \
COMPOSER_VERSION=1.10.27 \
COMPOSER2_VERSION=2.7.0 \
COMPOSER2_VERSION=2.7.2 \
DRUSH_VERSION=8.4.12 \
DRUPAL_CONSOLE_LAUNCHER_VERSION=1.9.7 \
WPCLI_VERSION=2.9.0 \
WPCLI_VERSION=2.10.0 \
# platformsh/legacy-cli
PLATFORMSH_CLI_VERSION=4.14.1 \
ACQUIA_CLI_VERSION=2.22.1 \
TERMINUS_VERSION=3.3.3 \
PLATFORMSH_CLI_VERSION=4.18.0 \
ACQUIA_CLI_VERSION=2.25.0 \
TERMINUS_VERSION=3.3.5 \
JQ_VERSION=1.7.1 \
YQ_VERSION=4.40.5
YQ_VERSION=4.43.1
RUN set -xe; \
# Composer 1.x
curl -fsSL "https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar" -o /usr/local/bin/composer1; \
Expand Down Expand Up @@ -326,19 +326,22 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil
# Node.js (installed as user)
ENV \
NVM_VERSION=0.39.7 \
NODE_VERSION=20.11.0 \
# yarn releases above 1.22.19 don't install
YARN_VERSION=1.22.19
NODE_VERSION=20.12.2 \
# Yarn (Classic v1)
# https://github.com/yarnpkg/yarn/releases
YARN_VERSION=1.22.22
# Don't use -x here, as the output may be excessive
RUN set -e; \
# NVM and a defaut Node.js version
export PROFILE="$HOME/.profile"; \
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash >/dev/null; \
# Reload profile to load nvm (needed by Yarn installation below)
. $HOME/.profile; \
# Yarn
export YARN_PROFILE="$HOME/.profile"; \
curl -fsSL https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION} >/dev/null
# Yarn (Classic v1)
# Installing via npm to allow fore override with never versions via corepack
npm install -g yarn@${YARN_VERSION}; \
# Enable corepack (allows installing project level yarn v2+ via yarn)
corepack enable

## Ruby bundler
## Don't use -x here, as the output may be excessive
Expand Down Expand Up @@ -414,8 +417,8 @@ USER docker
ARG HOME=/home/docker

ENV \
CODE_SERVER_VERSION=4.20.1 \
VSCODE_GITLENS_VERSION=14.7.0 \
CODE_SERVER_VERSION=4.23.1 \
VSCODE_GITLENS_VERSION=14.9.0 \
VSCODE_XDEBUG_VERSION=1.34.0 \
VSCODE_HOME="${HOME}/code-server"

Expand Down
4 changes: 4 additions & 0 deletions 8.1/config/php/zz-php-fpm.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
[global]
; This pid file is used for Docker healthcheck
pid = /run/php-fpm.pid
; Reduce noise in logs
log_level = error

[www]
user = docker
catch_workers_output = yes
listen = 0.0.0.0:9000
clear_env = no
; Do not log php-fpm accesses (see web container for http access)
access.log = /dev/null

; PHP (FPM) settings
; See zz-php.ini for global (CLI and FPM) PHP settings
Expand Down
6 changes: 6 additions & 0 deletions 8.1/config/supervisor/supervisord.conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@ nodaemon = true
# This way logs can be reviewed with docker logs.
# Additionalluy, logs from specific services are forwarded to individual files on disk.
loglevel = debug
# Mute the "CRIT Supervisor is running as root" warning in logs.
user=root
# Mute the "CRIT Server 'unix_http_server' running without any HTTP authentication checking" warning in logs
[unix_http_server]
username = dummy
password = dummy
33 changes: 18 additions & 15 deletions 8.2/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM php:8.2.15-fpm-bookworm as cli
FROM php:8.2.18-fpm-bookworm as cli

ARG TARGETARCH
ARG DEBIAN_FRONTEND=noninteractive
Expand Down Expand Up @@ -241,16 +241,16 @@ RUN set -xe; \
ENV \
COMPOSER_DEFAULT_VERSION=2 \
COMPOSER_VERSION=1.10.27 \
COMPOSER2_VERSION=2.7.0 \
COMPOSER2_VERSION=2.7.2 \
DRUSH_VERSION=8.4.12 \
DRUPAL_CONSOLE_LAUNCHER_VERSION=1.9.7 \
WPCLI_VERSION=2.9.0 \
WPCLI_VERSION=2.10.0 \
# platformsh/legacy-cli
PLATFORMSH_CLI_VERSION=4.14.1 \
ACQUIA_CLI_VERSION=2.22.1 \
TERMINUS_VERSION=3.3.3 \
PLATFORMSH_CLI_VERSION=4.18.0 \
ACQUIA_CLI_VERSION=2.25.0 \
TERMINUS_VERSION=3.3.5 \
JQ_VERSION=1.7.1 \
YQ_VERSION=4.40.5
YQ_VERSION=4.43.1
RUN set -xe; \
# Composer 1.x
curl -fsSL "https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar" -o /usr/local/bin/composer1; \
Expand Down Expand Up @@ -327,19 +327,22 @@ $HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie/PHPCompatibil
# Node.js (installed as user)
ENV \
NVM_VERSION=0.39.7 \
NODE_VERSION=20.11.0 \
# yarn releases above 1.22.19 don't install
YARN_VERSION=1.22.19
NODE_VERSION=20.12.2 \
# Yarn (Classic v1)
# https://github.com/yarnpkg/yarn/releases
YARN_VERSION=1.22.22
# Don't use -x here, as the output may be excessive
RUN set -e; \
# NVM and a defaut Node.js version
export PROFILE="$HOME/.profile"; \
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash >/dev/null; \
# Reload profile to load nvm (needed by Yarn installation below)
. $HOME/.profile; \
# Yarn
export YARN_PROFILE="$HOME/.profile"; \
curl -fsSL https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION} >/dev/null
# Yarn (Classic v1)
# Installing via npm to allow fore override with never versions via corepack
npm install -g yarn@${YARN_VERSION}; \
# Enable corepack (allows installing project level yarn v2+ via yarn)
corepack enable

## Ruby bundler
## Don't use -x here, as the output may be excessive
Expand Down Expand Up @@ -415,8 +418,8 @@ USER docker
ARG HOME=/home/docker

ENV \
CODE_SERVER_VERSION=4.20.1 \
VSCODE_GITLENS_VERSION=14.7.0 \
CODE_SERVER_VERSION=4.23.1 \
VSCODE_GITLENS_VERSION=14.9.0 \
VSCODE_XDEBUG_VERSION=1.34.0 \
VSCODE_HOME="${HOME}/code-server"

Expand Down
4 changes: 4 additions & 0 deletions 8.2/config/php/zz-php-fpm.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
[global]
; This pid file is used for Docker healthcheck
pid = /run/php-fpm.pid
; Reduce noise in logs
log_level = error

[www]
user = docker
catch_workers_output = yes
listen = 0.0.0.0:9000
clear_env = no
; Do not log php-fpm accesses (see web container for http access)
access.log = /dev/null

; PHP (FPM) settings
; See zz-php.ini for global (CLI and FPM) PHP settings
Expand Down
6 changes: 6 additions & 0 deletions 8.2/config/supervisor/supervisord.conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@ nodaemon = true
# This way logs can be reviewed with docker logs.
# Additionalluy, logs from specific services are forwarded to individual files on disk.
loglevel = debug
# Mute the "CRIT Supervisor is running as root" warning in logs.
user=root
# Mute the "CRIT Server 'unix_http_server' running without any HTTP authentication checking" warning in logs
[unix_http_server]
username = dummy
password = dummy
Loading

0 comments on commit 3222ff4

Please sign in to comment.