diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ef9bcd..3046198 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,21 @@ *** +### Release 24.09 + +This is the first `G3v6` release. +However, it's a maintenance release and the version number has been increased just to keep it synchronized with the **sibling project** [accetto/ubuntu-vnc-xfce-g3][accetto-github-ubuntu-vnc-xfce-g3]. +The previous version `G3v5` will still be available in this repository as the branch `archived-generation-g3v5`. + +Changes: + +- Default user `headless:headless (1000:1000)` has been changed to `headless:headless (1001:1001)`. + - This change has been only done to keep the containers uniform with the ones from the sibling `Ubuntu` projects. +- The directive `syntax=docker/dockerfile:experimental` has been removed from all Dockerfiles. +- The `noVNC` starting page has been updated in all images. + - If no `noVNC Client` is selected, then the `Full Client` will start automatically in 10 seconds. +- The hook script `release_of` has been updated with the intention to report more helpful building errors. + ### Release 24.03.1 This is a fix release, correcting an unfortunate copy-and-paste error in the files `Dockerfile.xfce.nodejs`, `Dockerfile.xfce.nvm` and `Dockerfile.xfce.python`. diff --git a/README.md b/README.md index dda3dc1..d4c9670 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Project `accetto/headless-coding-g3` -Version: G3v5 +Version: G3v6 *** @@ -95,14 +95,18 @@ The **first generation** (G1) contains the GitHub repository [accetto/ubuntu-vnc ### Project versions -This file describes the **fifth version** (G3v5) of the project. +This file describes the **sixth version** (G3v6) of the project. + +However, also this version keeps evolving. +Please check the [CHANGELOG][this-changelog] for more information about the changes. + +The previous versions are still available in this **GitHub** repository as the branches named as `archived-generation-g3v{d}`. *Remark*: The version number `G3v4` has been skipped, to align the numbering with the **sibling project** [accetto/ubuntu-vnc-xfce-g3][accetto-github-ubuntu-vnc-xfce-g3]. -The **second version** (G3v2) and the **first version** (G3v1, or simply G3) will still be available in this GitHub repository as the branches `archived-generation-g3v2-ubuntu` and `archived-generation-g3v1`. -The **third version** (G3v3) was not archived, because the changes are minor. +The main purpose of the version `G3v6` is to keep the project and the images uniform with the ones from the sibling `Ubuntu` projects. -The version `G3v5` brings only one significant change comparing to the previous version `G3v3` and it also introduces the [portable Visual Studio Code][vscode-portable] installation. +The version `G3v5` has brought only one significant change comparing to the previous version `G3v3` and it also introduces the [portable Visual Studio Code][vscode-portable] installation. - The updated script `set_user_permissions.sh`, which is part of Dockerfiles, skips the hidden files and directories now. It generally should not have any unwanted side effects, but it may make a difference in some scenarios, hence the version increase. diff --git a/docker/Dockerfile.xfce.nodejs b/docker/Dockerfile.xfce.nodejs index bc2ccd7..ceed33b 100644 --- a/docker/Dockerfile.xfce.nodejs +++ b/docker/Dockerfile.xfce.nodejs @@ -18,7 +18,7 @@ ARG ARG_SUDO_INITIAL_PW=headless ### stage_cache ############### -FROM ${BASEIMAGE}:${BASETAG} as stage_cache +FROM ${BASEIMAGE}:${BASETAG} AS stage_cache ### refresh the 'apt' cache RUN rm -f /etc/apt/apt.conf.d/docker-clean ; \ @@ -38,7 +38,7 @@ RUN \ ### stage_essentials #################### -FROM ${BASEIMAGE}:${BASETAG} as stage_essentials +FROM ${BASEIMAGE}:${BASETAG} AS stage_essentials RUN \ --mount=type=cache,from=stage_cache,sharing=locked,source=/var/cache/apt,target=/var/cache/apt \ @@ -59,7 +59,7 @@ RUN \ ### stage_xserver ################# -FROM stage_essentials as stage_xserver +FROM stage_essentials AS stage_xserver ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -81,7 +81,7 @@ RUN \ ### stage_xfce ############## -FROM stage_xserver as stage_xfce +FROM stage_xserver AS stage_xfce ARG ARG_APT_NO_RECOMMENDS ENV FEATURES_BUILD_SLIM_XFCE="${ARG_APT_NO_RECOMMENDS:+1}" @@ -98,7 +98,7 @@ RUN \ ### stage_tools ############### -FROM stage_xfce as stage_tools +FROM stage_xfce AS stage_tools ARG ARG_APT_NO_RECOMMENDS ARG ARG_FEATURES_SCREENSHOOTING ARG ARG_FEATURES_THUMBNAILING @@ -124,7 +124,7 @@ RUN \ ### stage_vnc ############# -FROM stage_tools as stage_vnc +FROM stage_tools AS stage_vnc ARG ARG_VNC_COL_DEPTH ARG ARG_VNC_DISPLAY ARG ARG_VNC_PORT @@ -165,7 +165,7 @@ EXPOSE "${VNC_PORT}" ### stage_novnc ############### -FROM stage_vnc as stage_novnc +FROM stage_vnc AS stage_novnc ARG ARG_APT_NO_RECOMMENDS ARG ARG_NOVNC_PORT ARG ARG_NOVNC_VERSION @@ -207,10 +207,12 @@ RUN echo \ \n\ noVNC\n\ \n\ + \n\ \n\ \n\ -

noVNC Lite Client

\n\ -

noVNC Full Client

\n\ +

noVNC Lite Client

\n\ +

noVNC Full Client

\n\ +

Full Client will start automatically in 10 seconds...

\n\ \n\ " \ > "${NOVNC_HOME}"/index.html @@ -222,7 +224,7 @@ EXPOSE "${NOVNC_PORT}" ### merge_stage_vnc ################### -FROM ${ARG_MERGE_STAGE_VNC_BASE} as merge_stage_vnc +FROM ${ARG_MERGE_STAGE_VNC_BASE} AS merge_stage_vnc ARG ARG_HEADLESS_USER_ID ARG ARG_HEADLESS_USER_NAME ARG ARG_HEADLESS_USER_GROUP_ID @@ -245,7 +247,7 @@ COPY ./src/home "${HOME}"/ ### stage_chromium ################## -FROM merge_stage_vnc as stage_chromium +FROM merge_stage_vnc AS stage_chromium ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -266,7 +268,7 @@ COPY ./xfce-chromium/src/home/readme*.md "${HOME}"/ ### stage_firefox ################# -FROM merge_stage_vnc as stage_firefox +FROM merge_stage_vnc AS stage_firefox ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -286,7 +288,7 @@ COPY ./xfce-firefox/src/home/Desktop "${HOME}"/Desktop/ ### stage_firefox_plus ### ################## -FROM stage_firefox as stage_firefox_plus +FROM stage_firefox AS stage_firefox_plus ENV FEATURES_FIREFOX_PLUS=1 @@ -305,14 +307,14 @@ RUN \ ### merge_stage_browser ####################### -FROM ${ARG_MERGE_STAGE_BROWSER_BASE} as merge_stage_browser +FROM ${ARG_MERGE_STAGE_BROWSER_BASE} AS merge_stage_browser ### ############ ### stage-nodejs ### ############ -FROM merge_stage_browser as stage_nodejs +FROM merge_stage_browser AS stage_nodejs ARG ARG_APT_NO_RECOMMENDS ARG ARG_NODEJS_PORT ARG ARG_NODEJS_DISTRO @@ -364,7 +366,7 @@ EXPOSE "${NODEJS_PORT}" ### stage_vscode ################ -FROM stage_nodejs as stage_vscode +FROM stage_nodejs AS stage_vscode ARG ARG_APT_NO_RECOMMENDS ARG ARG_VSCODE_DISTRO ARG ARG_VSCODE_VERSION @@ -416,7 +418,7 @@ RUN \ ### FINAL STAGE ############### -FROM ${ARG_FINAL_STAGE_BASE} as stage_final +FROM ${ARG_FINAL_STAGE_BASE} AS stage_final ARG ARG_FEATURES_OVERRIDING_ENVV ARG ARG_SUDO_INITIAL_PW @@ -463,7 +465,7 @@ ENTRYPOINT [ "/usr/bin/tini", "--", "/dockerstartup/startup.sh" ] ### METADATA STAGE ################## -FROM stage_final as stage_metadata +FROM stage_final AS stage_metadata ARG ARG_CREATED ARG ARG_DOCKER_TAG ARG ARG_VCS_REF diff --git a/docker/Dockerfile.xfce.nvm b/docker/Dockerfile.xfce.nvm index 75a8654..8453505 100644 --- a/docker/Dockerfile.xfce.nvm +++ b/docker/Dockerfile.xfce.nvm @@ -18,7 +18,7 @@ ARG ARG_SUDO_INITIAL_PW=headless ### stage_cache ############### -FROM ${BASEIMAGE}:${BASETAG} as stage_cache +FROM ${BASEIMAGE}:${BASETAG} AS stage_cache ### refresh the 'apt' cache RUN rm -f /etc/apt/apt.conf.d/docker-clean ; \ @@ -38,7 +38,7 @@ RUN \ ### stage_essentials #################### -FROM ${BASEIMAGE}:${BASETAG} as stage_essentials +FROM ${BASEIMAGE}:${BASETAG} AS stage_essentials RUN \ --mount=type=cache,from=stage_cache,sharing=locked,source=/var/cache/apt,target=/var/cache/apt \ @@ -59,7 +59,7 @@ RUN \ ### stage_xserver ################# -FROM stage_essentials as stage_xserver +FROM stage_essentials AS stage_xserver ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -81,7 +81,7 @@ RUN \ ### stage_xfce ############## -FROM stage_xserver as stage_xfce +FROM stage_xserver AS stage_xfce ARG ARG_APT_NO_RECOMMENDS ENV FEATURES_BUILD_SLIM_XFCE="${ARG_APT_NO_RECOMMENDS:+1}" @@ -98,7 +98,7 @@ RUN \ ### stage_tools ############### -FROM stage_xfce as stage_tools +FROM stage_xfce AS stage_tools ARG ARG_APT_NO_RECOMMENDS ARG ARG_FEATURES_SCREENSHOOTING ARG ARG_FEATURES_THUMBNAILING @@ -127,7 +127,7 @@ RUN \ ### stage_vnc ############# -FROM stage_tools as stage_vnc +FROM stage_tools AS stage_vnc ARG ARG_VNC_COL_DEPTH ARG ARG_VNC_DISPLAY ARG ARG_VNC_PORT @@ -168,7 +168,7 @@ EXPOSE "${VNC_PORT}" ### stage_novnc ############### -FROM stage_vnc as stage_novnc +FROM stage_vnc AS stage_novnc ARG ARG_APT_NO_RECOMMENDS ARG ARG_NOVNC_PORT ARG ARG_NOVNC_VERSION @@ -210,10 +210,12 @@ RUN echo \ \n\ noVNC\n\ \n\ + \n\ \n\ \n\ -

noVNC Lite Client

\n\ -

noVNC Full Client

\n\ +

noVNC Lite Client

\n\ +

noVNC Full Client

\n\ +

Full Client will start automatically in 10 seconds...

\n\ \n\ " \ > "${NOVNC_HOME}"/index.html @@ -225,7 +227,7 @@ EXPOSE "${NOVNC_PORT}" ### merge_stage_vnc ################### -FROM ${ARG_MERGE_STAGE_VNC_BASE} as merge_stage_vnc +FROM ${ARG_MERGE_STAGE_VNC_BASE} AS merge_stage_vnc ARG ARG_HEADLESS_USER_ID ARG ARG_HEADLESS_USER_NAME ARG ARG_HEADLESS_USER_GROUP_ID @@ -248,7 +250,7 @@ COPY ./src/home "${HOME}"/ ### stage_chromium ################## -FROM merge_stage_vnc as stage_chromium +FROM merge_stage_vnc AS stage_chromium ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -269,7 +271,7 @@ COPY ./xfce-chromium/src/home/readme*.md "${HOME}"/ ### stage_firefox ################# -FROM merge_stage_vnc as stage_firefox +FROM merge_stage_vnc AS stage_firefox ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -289,7 +291,7 @@ COPY ./xfce-firefox/src/home/Desktop "${HOME}"/Desktop/ ### stage_firefox_plus ### ################## -FROM stage_firefox as stage_firefox_plus +FROM stage_firefox AS stage_firefox_plus ENV FEATURES_FIREFOX_PLUS=1 @@ -308,14 +310,14 @@ RUN \ ### merge_stage_browser ####################### -FROM ${ARG_MERGE_STAGE_BROWSER_BASE} as merge_stage_browser +FROM ${ARG_MERGE_STAGE_BROWSER_BASE} AS merge_stage_browser ############# ### stage_nvm ############# -FROM merge_stage_browser as stage_nvm +FROM merge_stage_browser AS stage_nvm ARG ARG_NVM_VERSION ARG ARG_NODEJS_PORT @@ -346,7 +348,7 @@ USER 0 ### stage_vscode ################ -FROM stage_nvm as stage_vscode +FROM stage_nvm AS stage_vscode ARG ARG_APT_NO_RECOMMENDS ARG ARG_VSCODE_DISTRO ARG ARG_VSCODE_VERSION @@ -398,7 +400,7 @@ RUN \ ### FINAL STAGE ############### -FROM ${ARG_FINAL_STAGE_BASE} as stage_final +FROM ${ARG_FINAL_STAGE_BASE} AS stage_final ARG ARG_FEATURES_OVERRIDING_ENVV ARG ARG_SUDO_INITIAL_PW @@ -445,7 +447,7 @@ ENTRYPOINT [ "/usr/bin/tini", "--", "/dockerstartup/startup.sh" ] ### METADATA STAGE ################## -FROM stage_final as stage_metadata +FROM stage_final AS stage_metadata ARG ARG_CREATED ARG ARG_DOCKER_TAG ARG ARG_VCS_REF diff --git a/docker/Dockerfile.xfce.postman b/docker/Dockerfile.xfce.postman index 8ced16a..f505dee 100644 --- a/docker/Dockerfile.xfce.postman +++ b/docker/Dockerfile.xfce.postman @@ -18,7 +18,7 @@ ARG ARG_SUDO_INITIAL_PW=headless ### stage_cache ############### -FROM ${BASEIMAGE}:${BASETAG} as stage_cache +FROM ${BASEIMAGE}:${BASETAG} AS stage_cache ### refresh the 'apt' cache RUN rm -f /etc/apt/apt.conf.d/docker-clean ; \ @@ -38,7 +38,7 @@ RUN \ ### stage_essentials #################### -FROM ${BASEIMAGE}:${BASETAG} as stage_essentials +FROM ${BASEIMAGE}:${BASETAG} AS stage_essentials RUN \ --mount=type=cache,from=stage_cache,sharing=locked,source=/var/cache/apt,target=/var/cache/apt \ @@ -59,7 +59,7 @@ RUN \ ### stage_xserver ################# -FROM stage_essentials as stage_xserver +FROM stage_essentials AS stage_xserver ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -81,7 +81,7 @@ RUN \ ### stage_xfce ############## -FROM stage_xserver as stage_xfce +FROM stage_xserver AS stage_xfce ARG ARG_APT_NO_RECOMMENDS ENV FEATURES_BUILD_SLIM_XFCE="${ARG_APT_NO_RECOMMENDS:+1}" @@ -98,7 +98,7 @@ RUN \ ### stage_tools ############### -FROM stage_xfce as stage_tools +FROM stage_xfce AS stage_tools ARG ARG_APT_NO_RECOMMENDS ARG ARG_FEATURES_SCREENSHOOTING ARG ARG_FEATURES_THUMBNAILING @@ -124,7 +124,7 @@ RUN \ ### stage_vnc ############# -FROM stage_tools as stage_vnc +FROM stage_tools AS stage_vnc ARG ARG_VNC_COL_DEPTH ARG ARG_VNC_DISPLAY ARG ARG_VNC_PORT @@ -165,7 +165,7 @@ EXPOSE "${VNC_PORT}" ### stage_novnc ############### -FROM stage_vnc as stage_novnc +FROM stage_vnc AS stage_novnc ARG ARG_APT_NO_RECOMMENDS ARG ARG_NOVNC_PORT ARG ARG_NOVNC_VERSION @@ -207,10 +207,12 @@ RUN echo \ \n\ noVNC\n\ \n\ + \n\ \n\ \n\ -

noVNC Lite Client

\n\ -

noVNC Full Client

\n\ +

noVNC Lite Client

\n\ +

noVNC Full Client

\n\ +

Full Client will start automatically in 10 seconds...

\n\ \n\ " \ > "${NOVNC_HOME}"/index.html @@ -222,7 +224,7 @@ EXPOSE "${NOVNC_PORT}" ### merge_stage_vnc ################### -FROM ${ARG_MERGE_STAGE_VNC_BASE} as merge_stage_vnc +FROM ${ARG_MERGE_STAGE_VNC_BASE} AS merge_stage_vnc ARG ARG_HEADLESS_USER_ID ARG ARG_HEADLESS_USER_NAME ARG ARG_HEADLESS_USER_GROUP_ID @@ -245,7 +247,7 @@ COPY ./src/home "${HOME}"/ ### stage_chromium ################## -FROM merge_stage_vnc as stage_chromium +FROM merge_stage_vnc AS stage_chromium ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -266,7 +268,7 @@ COPY ./xfce-chromium/src/home/readme*.md "${HOME}"/ ### stage_firefox ################# -FROM merge_stage_vnc as stage_firefox +FROM merge_stage_vnc AS stage_firefox ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -286,7 +288,7 @@ COPY ./xfce-firefox/src/home/Desktop "${HOME}"/Desktop/ ### stage_firefox_plus ### ################## -FROM stage_firefox as stage_firefox_plus +FROM stage_firefox AS stage_firefox_plus ENV FEATURES_FIREFOX_PLUS=1 @@ -305,14 +307,14 @@ RUN \ ### merge_stage_browser ####################### -FROM ${ARG_MERGE_STAGE_BROWSER_BASE} as merge_stage_browser +FROM ${ARG_MERGE_STAGE_BROWSER_BASE} AS merge_stage_browser ################# ### stage_postman ################# -FROM merge_stage_browser as stage_postman +FROM merge_stage_browser AS stage_postman ARG ARG_APT_NO_RECOMMENDS ARG ARG_POSTMAN_DISTRO ARG ARG_POSTMAN_VERSION @@ -365,7 +367,7 @@ COPY ./xfce-postman/src/home/readme*.md "${HOME}"/ ### FINAL STAGE ############### -FROM ${ARG_FINAL_STAGE_BASE} as stage_final +FROM ${ARG_FINAL_STAGE_BASE} AS stage_final ARG ARG_FEATURES_OVERRIDING_ENVV ARG ARG_SUDO_INITIAL_PW @@ -411,7 +413,7 @@ ENTRYPOINT [ "/usr/bin/tini", "--", "/dockerstartup/startup.sh" ] ### METADATA STAGE ################## -FROM stage_final as stage_metadata +FROM stage_final AS stage_metadata ARG ARG_CREATED ARG ARG_DOCKER_TAG ARG ARG_VCS_REF diff --git a/docker/Dockerfile.xfce.python b/docker/Dockerfile.xfce.python index b6614be..ca48a3b 100644 --- a/docker/Dockerfile.xfce.python +++ b/docker/Dockerfile.xfce.python @@ -18,7 +18,7 @@ ARG ARG_SUDO_INITIAL_PW=headless ### stage_cache ############### -FROM ${BASEIMAGE}:${BASETAG} as stage_cache +FROM ${BASEIMAGE}:${BASETAG} AS stage_cache ### refresh the 'apt' cache RUN rm -f /etc/apt/apt.conf.d/docker-clean ; \ @@ -38,7 +38,7 @@ RUN \ ### stage_essentials #################### -FROM ${BASEIMAGE}:${BASETAG} as stage_essentials +FROM ${BASEIMAGE}:${BASETAG} AS stage_essentials RUN \ --mount=type=cache,from=stage_cache,sharing=locked,source=/var/cache/apt,target=/var/cache/apt \ @@ -59,7 +59,7 @@ RUN \ ### stage_xserver ################# -FROM stage_essentials as stage_xserver +FROM stage_essentials AS stage_xserver ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -81,7 +81,7 @@ RUN \ ### stage_xfce ############## -FROM stage_xserver as stage_xfce +FROM stage_xserver AS stage_xfce ARG ARG_APT_NO_RECOMMENDS ENV FEATURES_BUILD_SLIM_XFCE="${ARG_APT_NO_RECOMMENDS:+1}" @@ -98,7 +98,7 @@ RUN \ ### stage_tools ############### -FROM stage_xfce as stage_tools +FROM stage_xfce AS stage_tools ARG ARG_APT_NO_RECOMMENDS ARG ARG_FEATURES_SCREENSHOOTING ARG ARG_FEATURES_THUMBNAILING @@ -124,7 +124,7 @@ RUN \ ### stage_vnc ############# -FROM stage_tools as stage_vnc +FROM stage_tools AS stage_vnc ARG ARG_VNC_COL_DEPTH ARG ARG_VNC_DISPLAY ARG ARG_VNC_PORT @@ -165,7 +165,7 @@ EXPOSE "${VNC_PORT}" ### stage_novnc ############### -FROM stage_vnc as stage_novnc +FROM stage_vnc AS stage_novnc ARG ARG_APT_NO_RECOMMENDS ARG ARG_NOVNC_PORT ARG ARG_NOVNC_VERSION @@ -207,10 +207,12 @@ RUN echo \ \n\ noVNC\n\ \n\ + \n\ \n\ \n\ -

noVNC Lite Client

\n\ -

noVNC Full Client

\n\ +

noVNC Lite Client

\n\ +

noVNC Full Client

\n\ +

Full Client will start automatically in 10 seconds...

\n\ \n\ " \ > "${NOVNC_HOME}"/index.html @@ -222,7 +224,7 @@ EXPOSE "${NOVNC_PORT}" ### merge_stage_vnc ################### -FROM ${ARG_MERGE_STAGE_VNC_BASE} as merge_stage_vnc +FROM ${ARG_MERGE_STAGE_VNC_BASE} AS merge_stage_vnc ARG ARG_HEADLESS_USER_ID ARG ARG_HEADLESS_USER_NAME ARG ARG_HEADLESS_USER_GROUP_ID @@ -245,7 +247,7 @@ COPY ./src/home "${HOME}"/ ### stage_chromium ################## -FROM merge_stage_vnc as stage_chromium +FROM merge_stage_vnc AS stage_chromium ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -266,7 +268,7 @@ COPY ./xfce-chromium/src/home/readme*.md "${HOME}"/ ### stage_firefox ################# -FROM merge_stage_vnc as stage_firefox +FROM merge_stage_vnc AS stage_firefox ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -286,7 +288,7 @@ COPY ./xfce-firefox/src/home/Desktop "${HOME}"/Desktop/ ### stage_firefox_plus ### ################## -FROM stage_firefox as stage_firefox_plus +FROM stage_firefox AS stage_firefox_plus ENV FEATURES_FIREFOX_PLUS=1 @@ -305,14 +307,14 @@ RUN \ ### merge_stage_browser ####################### -FROM ${ARG_MERGE_STAGE_BROWSER_BASE} as merge_stage_browser +FROM ${ARG_MERGE_STAGE_BROWSER_BASE} AS merge_stage_browser ################ ### stage-python ################ -FROM merge_stage_browser as stage_python +FROM merge_stage_browser AS stage_python ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -339,7 +341,7 @@ COPY ./xfce-python/src/samples "${HOME}"/projects/samples ### stage_vscode ################ -FROM stage_python as stage_vscode +FROM stage_python AS stage_vscode ARG ARG_APT_NO_RECOMMENDS ARG ARG_VSCODE_DISTRO ARG ARG_VSCODE_VERSION @@ -391,7 +393,7 @@ RUN \ ### FINAL STAGE ############### -FROM ${ARG_FINAL_STAGE_BASE} as stage_final +FROM ${ARG_FINAL_STAGE_BASE} AS stage_final ARG ARG_FEATURES_OVERRIDING_ENVV ARG ARG_SUDO_INITIAL_PW @@ -437,7 +439,7 @@ ENTRYPOINT [ "/usr/bin/tini", "--", "/dockerstartup/startup.sh" ] ### METADATA STAGE ################## -FROM stage_final as stage_metadata +FROM stage_final AS stage_metadata ARG ARG_CREATED ARG ARG_DOCKER_TAG ARG ARG_VCS_REF diff --git a/docker/Dockerfile.xfce.vscode b/docker/Dockerfile.xfce.vscode index 7539ffc..bf3a899 100644 --- a/docker/Dockerfile.xfce.vscode +++ b/docker/Dockerfile.xfce.vscode @@ -18,7 +18,7 @@ ARG ARG_SUDO_INITIAL_PW=headless ### stage_cache ############### -FROM ${BASEIMAGE}:${BASETAG} as stage_cache +FROM ${BASEIMAGE}:${BASETAG} AS stage_cache ### refresh the 'apt' cache RUN rm -f /etc/apt/apt.conf.d/docker-clean ; \ @@ -38,7 +38,7 @@ RUN \ ### stage_essentials #################### -FROM ${BASEIMAGE}:${BASETAG} as stage_essentials +FROM ${BASEIMAGE}:${BASETAG} AS stage_essentials RUN \ --mount=type=cache,from=stage_cache,sharing=locked,source=/var/cache/apt,target=/var/cache/apt \ @@ -59,7 +59,7 @@ RUN \ ### stage_xserver ################# -FROM stage_essentials as stage_xserver +FROM stage_essentials AS stage_xserver ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -81,7 +81,7 @@ RUN \ ### stage_xfce ############## -FROM stage_xserver as stage_xfce +FROM stage_xserver AS stage_xfce ARG ARG_APT_NO_RECOMMENDS ENV FEATURES_BUILD_SLIM_XFCE="${ARG_APT_NO_RECOMMENDS:+1}" @@ -98,7 +98,7 @@ RUN \ ### stage_tools ############### -FROM stage_xfce as stage_tools +FROM stage_xfce AS stage_tools ARG ARG_APT_NO_RECOMMENDS ARG ARG_FEATURES_SCREENSHOOTING ARG ARG_FEATURES_THUMBNAILING @@ -124,7 +124,7 @@ RUN \ ### stage_vnc ############# -FROM stage_tools as stage_vnc +FROM stage_tools AS stage_vnc ARG ARG_VNC_COL_DEPTH ARG ARG_VNC_DISPLAY ARG ARG_VNC_PORT @@ -165,7 +165,7 @@ EXPOSE "${VNC_PORT}" ### stage_novnc ############### -FROM stage_vnc as stage_novnc +FROM stage_vnc AS stage_novnc ARG ARG_APT_NO_RECOMMENDS ARG ARG_NOVNC_PORT ARG ARG_NOVNC_VERSION @@ -207,10 +207,12 @@ RUN echo \ \n\ noVNC\n\ \n\ + \n\ \n\ \n\ -

noVNC Lite Client

\n\ -

noVNC Full Client

\n\ +

noVNC Lite Client

\n\ +

noVNC Full Client

\n\ +

Full Client will start automatically in 10 seconds...

\n\ \n\ " \ > "${NOVNC_HOME}"/index.html @@ -222,7 +224,7 @@ EXPOSE "${NOVNC_PORT}" ### merge_stage_vnc ################### -FROM ${ARG_MERGE_STAGE_VNC_BASE} as merge_stage_vnc +FROM ${ARG_MERGE_STAGE_VNC_BASE} AS merge_stage_vnc ARG ARG_HEADLESS_USER_ID ARG ARG_HEADLESS_USER_NAME ARG ARG_HEADLESS_USER_GROUP_ID @@ -245,7 +247,7 @@ COPY ./src/home "${HOME}"/ ### stage_chromium ################## -FROM merge_stage_vnc as stage_chromium +FROM merge_stage_vnc AS stage_chromium ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -266,7 +268,7 @@ COPY ./xfce-chromium/src/home/readme*.md "${HOME}"/ ### stage_firefox ################# -FROM merge_stage_vnc as stage_firefox +FROM merge_stage_vnc AS stage_firefox ARG ARG_APT_NO_RECOMMENDS ENV \ @@ -286,7 +288,7 @@ COPY ./xfce-firefox/src/home/Desktop "${HOME}"/Desktop/ ### stage_firefox_plus ### ################## -FROM stage_firefox as stage_firefox_plus +FROM stage_firefox AS stage_firefox_plus ENV FEATURES_FIREFOX_PLUS=1 @@ -305,14 +307,14 @@ RUN \ ### merge_stage_browser ####################### -FROM ${ARG_MERGE_STAGE_BROWSER_BASE} as merge_stage_browser +FROM ${ARG_MERGE_STAGE_BROWSER_BASE} AS merge_stage_browser ################ ### stage_vscode ################ -FROM merge_stage_browser as stage_vscode +FROM merge_stage_browser AS stage_vscode ARG ARG_APT_NO_RECOMMENDS ARG ARG_VSCODE_DISTRO ARG ARG_VSCODE_VERSION @@ -364,7 +366,7 @@ RUN \ ### FINAL STAGE ############### -FROM ${ARG_FINAL_STAGE_BASE} as stage_final +FROM ${ARG_FINAL_STAGE_BASE} AS stage_final ARG ARG_FEATURES_OVERRIDING_ENVV ARG ARG_SUDO_INITIAL_PW @@ -410,7 +412,7 @@ ENTRYPOINT [ "/usr/bin/tini", "--", "/dockerstartup/startup.sh" ] ### METADATA STAGE ################## -FROM stage_final as stage_metadata +FROM stage_final AS stage_metadata ARG ARG_CREATED ARG ARG_DOCKER_TAG ARG ARG_VCS_REF diff --git a/docker/hooks/release_of b/docker/hooks/release_of index 1e1304d..a5cdcc1 100644 --- a/docker/hooks/release_of +++ b/docker/hooks/release_of @@ -3,36 +3,52 @@ main() { local version="$2" local result="" + local response="" + local truncateMax=1000 case "$1" in nodejs-current ) # result=$(wget -qO- \ - result=$(curl -sLN \ - https://nodejs.org/en/feed/releases.xml \ - | grep '\(Current\)' \ - | sort -rV \ - | grep -Po -m1 '[0-9.]+' \ - ) + # result=$(curl -sLN \ + # https://nodejs.org/en/feed/releases.xml \ + # | grep '\(Current\)' \ + # | sort -rV \ + # | grep -Po -m1 '[0-9.]+' \ + # ) + response=$(curl -sLN https://nodejs.org/en/feed/releases.xml) + if [[ -n "${response}" ]] ; then + result=$(echo "${response}" | grep '\(Current\)' | sort -rV | grep -Po -m1 '[0-9.]+') + fi ;; nodejs-lts ) # result=$(wget -qO- \ - result=$(curl -sLN \ - https://nodejs.org/en/feed/releases.xml \ - | grep '\(LTS\)' \ - | sort -rV \ - | grep -Po -m1 '[0-9.]+' \ - ) + # result=$(curl -sLN \ + # https://nodejs.org/en/feed/releases.xml \ + # | grep '\(LTS\)' \ + # | sort -rV \ + # | grep -Po -m1 '[0-9.]+' \ + # ) + response=$(curl -sLN https://nodejs.org/en/feed/releases.xml) + if [[ -n "${response}" ]] ; then + result=$(echo "${response}" | grep '\(LTS\)' | sort -rV | grep -Po -m1 '[0-9.]+') + fi ;; nvm ) # result=$(wget -qO- \ - result=$(curl -sLN -H "Accept: application/vnd.github.v3+json" \ + # result=$(curl -sLN -H "Accept: application/vnd.github.v3+json" \ + # https://api.github.com/repos/nvm-sh/nvm/releases/latest \ + # | grep -m1 "tag_name" \ + # | grep -Po '[0-9.]+' + # ) + response=$(curl -sLN -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/nvm-sh/nvm/releases/latest \ - | grep -m1 "tag_name" \ - | grep -Po '[0-9.]+' ) + if [[ -n "${response}" ]] ; then + result=$(echo "${response}" | grep -m1 "tag_name" | grep -Po '[0-9.]+') + fi ;; postman ) @@ -47,22 +63,38 @@ main() { # | grep -m1 "version" \ # | grep -Po '[0-9.]+' # ) + # response=$(curl -sLN -H "Accept: application/vnd.github.v3+json" \ + # "https://dl.pstmn.io/api/version/latest?platform=linux64&channel=stable") + # if [[ -n "${response}" ]] ; then + # result=$(echo "${response}" | grep -m1 "version" | grep -Po '[0-9.]+') + # fi ;; vscode ) # result=$(wget -qO- \ - result=$(curl -sLN -H "Accept: application/vnd.github.v3+json" \ + # result=$(curl -sLN -H "Accept: application/vnd.github.v3+json" \ + # https://api.github.com/repos/microsoft/vscode/releases/latest \ + # | grep -m1 "tag_name" \ + # | grep -Po '[0-9.]+' + # ) + response=$(curl -sLN -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/microsoft/vscode/releases/latest \ - | grep -m1 "tag_name" \ - | grep -Po '[0-9.]+' ) + if [[ -n "${response}" ]] ; then + result=$(echo "${response}" | grep -m1 "tag_name" | grep -Po '[0-9.]+') + fi ;; vscode-file ) # result=$(wget -qO- \ - result="$(curl -sLNI https://update.code.visualstudio.com/${version:-latest}/linux-x64/stable \ - | grep -Po -m1 '(?<=location: )[^\r]+' - )" + # result="$(curl -sLNI https://update.code.visualstudio.com/${version:-latest}/linux-x64/stable \ + # | grep -Po -m1 '(?<=location: )[^\r]+' + # )" + # result="${result##*/}" + response=$(curl -sLNI https://update.code.visualstudio.com/${version:-latest}/linux-x64/stable) + if [[ -n "${response}" ]] ; then + result=$(echo ${response} | grep -Po -m1 '(?<=location: )[^\r]+') + fi result="${result##*/}" ;; @@ -78,7 +110,10 @@ main() { echo "${result}" else - echo "Exiting '${0}' with code '1' because unable to get version of '$1'" + echo "ERROR: Exiting '${0}' with code '1' because unable to get version of '$1'" + echo "ERROR: Unexpected HTTPS response (truncated to $truncateMax):" + ### don't use quotes here + echo ${response:0:truncateMax} return 1 fi }