diff --git a/docker-compose.yml b/docker-compose.yml index 62ea0f10..efdfef9e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -152,6 +152,8 @@ services: - INSTALL_WKHTMLTOPDF=${WORKSPACE_INSTALL_WKHTMLTOPDF} - INSTALL_GNU_PARALLEL=${WORKSPACE_INSTALL_GNU_PARALLEL} - INSTALL_LNAV=${WORKSPACE_INSTALL_LNAV} + - INSTALL_PROTOC=${WORKSPACE_INSTALL_PROTOC} + - PROTOC_VERSION=${WORKSPACE_PROTOC_VERSION} - http_proxy - https_proxy - no_proxy diff --git a/env-example b/env-example index a2b3ad30..9e441836 100644 --- a/env-example +++ b/env-example @@ -179,6 +179,8 @@ WORKSPACE_VUE_CLI_UI_HOST_PORT=8001 WORKSPACE_ANGULAR_CLI_SERVE_HOST_PORT=4200 WORKSPACE_INSTALL_GIT_PROMPT=false WORKSPACE_INSTALL_LNAV=false +WORKSPACE_INSTALL_PROTOC=false +WORKSPACE_PROTOC_VERSION=latest ### PHP_FPM ############################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 4834a6bb..c0279b0d 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1386,6 +1386,27 @@ RUN if [ ${INSTALL_LNAV} = true ]; then \ apt-get install -y lnav \ ;fi +########################################################################### +# Protoc: +########################################################################### + +ARG INSTALL_PROTOC=false +ARG PROTOC_VERSION + +RUN if [ ${INSTALL_PROTOC} = true ]; then \ + if [ ${PROTOC_VERSION} = "latest" ]; then \ + REAL_PROTOC_VERSION=$(curl -s https://api.github.com/repos/protocolbuffers/protobuf/releases/latest | \ + sed -nr 's/.*"tag_name":\s?"v(.+?)".*/\1/p'); \ + else \ + REAL_PROTOC_VERSION=${PROTOC_VERSION}; \ + fi && \ + PROTOC_ZIP=protoc-${REAL_PROTOC_VERSION}-linux-x86_64.zip; \ + curl -L -o /tmp/protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v${REAL_PROTOC_VERSION}/${PROTOC_ZIP} && \ + unzip -q -o /tmp/protoc.zip -d /usr/local bin/protoc && \ + unzip -q -o /tmp/protoc.zip -d /usr/local 'include/*' && \ + rm -f /tmp/protoc.zip \ +;fi + ########################################################################### # Check PHP version: ###########################################################################