mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-08 00:22:14 +01:00
feat(Dockerfile): no dedicated Dockerfiles for AWS and Cloud Run + chromium/libreoffice only variants
This commit is contained in:
2
.env
2
.env
@@ -2,7 +2,5 @@ GOTENBERG_VERSION=snapshot
|
|||||||
DOCKER_REGISTRY=gotenberg
|
DOCKER_REGISTRY=gotenberg
|
||||||
DOCKER_REPOSITORY=gotenberg
|
DOCKER_REPOSITORY=gotenberg
|
||||||
DOCKERFILE=build/Dockerfile
|
DOCKERFILE=build/Dockerfile
|
||||||
DOCKERFILE_CLOUDRUN=build/Dockerfile.cloudrun
|
|
||||||
DOCKERFILE_AWS_LAMBDA=build/Dockerfile.aws-lambda
|
|
||||||
DOCKER_BUILD_CONTEXT='.'
|
DOCKER_BUILD_CONTEXT='.'
|
||||||
TARGET=gotenberg
|
TARGET=gotenberg
|
||||||
|
|||||||
117
build/Dockerfile
117
build/Dockerfile
@@ -345,3 +345,120 @@ EXPOSE 3000
|
|||||||
|
|
||||||
ENTRYPOINT [ "/usr/bin/tini", "--" ]
|
ENTRYPOINT [ "/usr/bin/tini", "--" ]
|
||||||
CMD [ "gotenberg" ]
|
CMD [ "gotenberg" ]
|
||||||
|
|
||||||
|
# ==============================================================
|
||||||
|
# Cloud Run variants
|
||||||
|
# ==============================================================
|
||||||
|
|
||||||
|
# ----------------------------------------------
|
||||||
|
# Cloud Run: full (Chromium + LibreOffice)
|
||||||
|
# ----------------------------------------------
|
||||||
|
FROM gotenberg AS gotenberg-cloudrun
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# For security reasons, the non-root user gotenberg does not own the Tini binary by default.
|
||||||
|
# However, some providers like Cloud Run from Google Cloud cannot start a Docker container in that case.
|
||||||
|
# See https://github.com/gotenberg/gotenberg/issues/90#issuecomment-543551353.
|
||||||
|
RUN chown gotenberg: /usr/bin/tini
|
||||||
|
|
||||||
|
ENV API_PORT_FROM_ENV=PORT
|
||||||
|
ENV CHROMIUM_AUTO_START=true
|
||||||
|
ENV LIBREOFFICE_AUTO_START=true
|
||||||
|
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
||||||
|
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
||||||
|
ENV LOG_ENABLE_GCP_FIELDS=true
|
||||||
|
|
||||||
|
USER gotenberg
|
||||||
|
|
||||||
|
# ----------------------------------------------
|
||||||
|
# Cloud Run: Chromium only
|
||||||
|
# ----------------------------------------------
|
||||||
|
FROM gotenberg-chromium AS gotenberg-cloudrun-chromium
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN chown gotenberg: /usr/bin/tini
|
||||||
|
|
||||||
|
ENV API_PORT_FROM_ENV=PORT
|
||||||
|
ENV CHROMIUM_AUTO_START=true
|
||||||
|
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
||||||
|
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
||||||
|
ENV LOG_ENABLE_GCP_FIELDS=true
|
||||||
|
|
||||||
|
USER gotenberg
|
||||||
|
|
||||||
|
# ----------------------------------------------
|
||||||
|
# Cloud Run: LibreOffice only
|
||||||
|
# ----------------------------------------------
|
||||||
|
FROM gotenberg-libreoffice AS gotenberg-cloudrun-libreoffice
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN chown gotenberg: /usr/bin/tini
|
||||||
|
|
||||||
|
ENV API_PORT_FROM_ENV=PORT
|
||||||
|
ENV LIBREOFFICE_AUTO_START=true
|
||||||
|
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
||||||
|
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
||||||
|
ENV LOG_ENABLE_GCP_FIELDS=true
|
||||||
|
|
||||||
|
USER gotenberg
|
||||||
|
|
||||||
|
# ==============================================================
|
||||||
|
# AWS Lambda variants
|
||||||
|
# ==============================================================
|
||||||
|
|
||||||
|
# ----------------------------------------------
|
||||||
|
# AWS Lambda: full (Chromium + LibreOffice)
|
||||||
|
# ----------------------------------------------
|
||||||
|
FROM gotenberg AS gotenberg-aws-lambda
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.9.1 /lambda-adapter /opt/extensions/lambda-adapter
|
||||||
|
|
||||||
|
ENV AWS_LWA_PORT=3000
|
||||||
|
ENV AWS_LWA_READINESS_CHECK_PATH=/health
|
||||||
|
ENV AWS_LWA_INVOKE_MODE=buffered
|
||||||
|
ENV API_PORT_FROM_ENV=AWS_LWA_PORT
|
||||||
|
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
||||||
|
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
||||||
|
|
||||||
|
USER gotenberg
|
||||||
|
|
||||||
|
# ----------------------------------------------
|
||||||
|
# AWS Lambda: Chromium only
|
||||||
|
# ----------------------------------------------
|
||||||
|
FROM gotenberg-chromium AS gotenberg-aws-lambda-chromium
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.9.1 /lambda-adapter /opt/extensions/lambda-adapter
|
||||||
|
|
||||||
|
ENV AWS_LWA_PORT=3000
|
||||||
|
ENV AWS_LWA_READINESS_CHECK_PATH=/health
|
||||||
|
ENV AWS_LWA_INVOKE_MODE=buffered
|
||||||
|
ENV API_PORT_FROM_ENV=AWS_LWA_PORT
|
||||||
|
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
||||||
|
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
||||||
|
|
||||||
|
USER gotenberg
|
||||||
|
|
||||||
|
# ----------------------------------------------
|
||||||
|
# AWS Lambda: LibreOffice only
|
||||||
|
# ----------------------------------------------
|
||||||
|
FROM gotenberg-libreoffice AS gotenberg-aws-lambda-libreoffice
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.9.1 /lambda-adapter /opt/extensions/lambda-adapter
|
||||||
|
|
||||||
|
ENV AWS_LWA_PORT=3000
|
||||||
|
ENV AWS_LWA_READINESS_CHECK_PATH=/health
|
||||||
|
ENV AWS_LWA_INVOKE_MODE=buffered
|
||||||
|
ENV API_PORT_FROM_ENV=AWS_LWA_PORT
|
||||||
|
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
||||||
|
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
||||||
|
|
||||||
|
USER gotenberg
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
ARG DOCKER_REGISTRY
|
|
||||||
ARG DOCKER_REPOSITORY
|
|
||||||
ARG GOTENBERG_VERSION
|
|
||||||
|
|
||||||
FROM $DOCKER_REGISTRY/$DOCKER_REPOSITORY:$GOTENBERG_VERSION
|
|
||||||
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.9.1 /lambda-adapter /opt/extensions/lambda-adapter
|
|
||||||
|
|
||||||
# AWS.
|
|
||||||
ENV AWS_LWA_PORT=3000
|
|
||||||
ENV AWS_LWA_READINESS_CHECK_PATH=/health
|
|
||||||
ENV AWS_LWA_INVOKE_MODE=buffered
|
|
||||||
|
|
||||||
# Gotenberg.
|
|
||||||
ENV API_PORT_FROM_ENV=AWS_LWA_PORT
|
|
||||||
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
|
||||||
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
|
||||||
|
|
||||||
USER gotenberg
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
ARG DOCKER_REGISTRY
|
|
||||||
ARG DOCKER_REPOSITORY
|
|
||||||
ARG GOTENBERG_VERSION
|
|
||||||
|
|
||||||
FROM $DOCKER_REGISTRY/$DOCKER_REPOSITORY:$GOTENBERG_VERSION
|
|
||||||
|
|
||||||
USER root
|
|
||||||
|
|
||||||
# For security reasons, the non-root user gotenberg does not own the Tini binary by default.
|
|
||||||
# However, some providers like Cloud Run from Google Cloud cannot start a Docker container in that case.
|
|
||||||
# See https://github.com/gotenberg/gotenberg/issues/90#issuecomment-543551353.
|
|
||||||
RUN chown gotenberg: /usr/bin/tini
|
|
||||||
|
|
||||||
# Gotenberg.
|
|
||||||
ENV API_PORT_FROM_ENV=PORT
|
|
||||||
ENV CHROMIUM_AUTO_START=true
|
|
||||||
ENV LIBREOFFICE_AUTO_START=true
|
|
||||||
ENV WEBHOOK_ENABLE_SYNC_MODE=true
|
|
||||||
ENV GOTENBERG_BUILD_DEBUG_DATA=false
|
|
||||||
ENV LOG_ENABLE_GCP_FIELDS=true
|
|
||||||
|
|
||||||
USER gotenberg
|
|
||||||
Reference in New Issue
Block a user