From 12576819b7d3a166bba86b453a75efaae44ea13f Mon Sep 17 00:00:00 2001 From: Masud Zaman Date: Tue, 5 Aug 2025 09:36:46 +0600 Subject: [PATCH] Allow apt-get update to accept release info changes dynamically (#3611) * Fix workspace APT compatibility with Ubuntu PPAs by supporting ReleaseInfo change (backward-compatible) * Allow apt-get update to accept release info changes dynamically * Fix: Correct condition to set APT_GET_UPDATE_OPTIONS in Dockerfile - Fixed the condition that sets the APT_GET_UPDATE_OPTIONS variable based on the WORKSPACE_ALLOW_RELEASE_INFO_CHANGE environment variable. - Ensured proper syntax for condition evaluation to correctly pass the empty string when false. * Fix variable name * Set default value of WORKSPACE_ALLOW_RELEASE_INFO_CHANGE as false --- .env.example | 1 + docker-compose.yml | 1 + workspace/Dockerfile | 23 ++++++++++++++++------- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index 6ccbf60a..60d50dbb 100644 --- a/.env.example +++ b/.env.example @@ -108,6 +108,7 @@ SHELL_OH_MY_ZSH_ALIASES=false ### WORKSPACE ############################################# WORKSPACE_BASE_IMAGE_TAG_PREFIX=latest +WORKSPACE_ALLOW_RELEASE_INFO_CHANGE=false WORKSPACE_COMPOSER_GLOBAL_INSTALL=true WORKSPACE_COMPOSER_VERSION=2 WORKSPACE_COMPOSER_AUTH_JSON=false diff --git a/docker-compose.yml b/docker-compose.yml index 5c11ce80..5720e9d8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -111,6 +111,7 @@ services: - INSTALL_OCI8=${WORKSPACE_INSTALL_OCI8} - INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS} - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} + - WORKSPACE_ALLOW_RELEASE_INFO_CHANGE=${WORKSPACE_ALLOW_RELEASE_INFO_CHANGE} - COMPOSER_VERSION=${WORKSPACE_COMPOSER_VERSION} - COMPOSER_AUTH_JSON=${WORKSPACE_COMPOSER_AUTH_JSON} - COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST} diff --git a/workspace/Dockerfile b/workspace/Dockerfile index cad77852..aa05fce0 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -47,9 +47,18 @@ ENV PUID ${PUID} ARG PGID=1000 ENV PGID ${PGID} +# Set apt-get options: +ARG WORKSPACE_ALLOW_RELEASE_INFO_CHANGE=false +ENV WORKSPACE_ALLOW_RELEASE_INFO_CHANGE ${WORKSPACE_ALLOW_RELEASE_INFO_CHANGE} + # always run apt update when start and after add new source list, then clean up at end. RUN set -xe; \ - apt-get update -yqq && \ + if [ ${WORKSPACE_ALLOW_RELEASE_INFO_CHANGE} = true ]; then \ + APT_GET_UPDATE_OPTIONS="--allow-releaseinfo-change"; \ + else \ + APT_GET_UPDATE_OPTIONS=""; \ + fi; \ + apt-get update -yqq ${APT_GET_UPDATE_OPTIONS} && \ pecl channel-update pecl.php.net && \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "8" ] && [ $(php -r "echo PHP_MINOR_VERSION;") != "0" ]; then \ groupmod --new-name laradock ubuntu; \ @@ -115,14 +124,14 @@ RUN sed -i 's/\r//' /root/aliases.sh && \ echo "" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \ echo "source ~/aliases.sh" >> ~/.bashrc && \ - echo "" >> ~/.bashrc + echo "" >> ~/.bashrc USER laradock RUN echo "" >> ~/.bashrc && \ echo "# Load Custom Aliases" >> ~/.bashrc && \ echo "source ~/aliases.sh" >> ~/.bashrc && \ - echo "" >> ~/.bashrc + echo "" >> ~/.bashrc ########################################################################### # Composer: @@ -1048,7 +1057,7 @@ ARG INSTALL_LARAVEL_INSTALLER=false RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \ # Install the Laravel Installer - composer global require "laravel/installer" \ + composer global require "laravel/installer" \ ;fi USER root @@ -1704,7 +1713,7 @@ RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ echo "" >> ~/.zshrc && \ echo "# Load Custom Aliases" >> ~/.zshrc && \ echo "source ~/aliases.sh" >> ~/.zshrc && \ - echo "" >> ~/.zshrc \ + echo "" >> ~/.zshrc \ ;fi USER laradock @@ -1713,7 +1722,7 @@ RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ echo "" >> ~/.zshrc && \ echo "# Load Custom Aliases" >> ~/.zshrc && \ echo "source ~/aliases.sh" >> ~/.zshrc && \ - echo "" >> ~/.zshrc \ + echo "" >> ~/.zshrc \ ;fi USER root @@ -1918,4 +1927,4 @@ RUN apt-get clean && \ rm -f /var/log/lastlog /var/log/faillog # Set default work directory -WORKDIR /var/www +WORKDIR /var/www \ No newline at end of file