feat: allow layered custom image build (#1497)
speed up build time pull builder image pack built assets into base image
This commit is contained in:
committed by
GitHub
parent
fe880183f9
commit
8ac69bb501
@@ -91,3 +91,19 @@ target "erpnext" {
|
|||||||
target = "erpnext"
|
target = "erpnext"
|
||||||
tags = tag("erpnext", "${ERPNEXT_VERSION}")
|
tags = tag("erpnext", "${ERPNEXT_VERSION}")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
target "base" {
|
||||||
|
inherits = ["default-args"]
|
||||||
|
context = "."
|
||||||
|
dockerfile = "images/production/Containerfile"
|
||||||
|
target = "base"
|
||||||
|
tags = tag("base", "${FRAPPE_VERSION}")
|
||||||
|
}
|
||||||
|
|
||||||
|
target "build" {
|
||||||
|
inherits = ["default-args"]
|
||||||
|
context = "."
|
||||||
|
dockerfile = "images/production/Containerfile"
|
||||||
|
target = "build"
|
||||||
|
tags = tag("build", "${FRAPPE_VERSION}")
|
||||||
|
}
|
||||||
|
|||||||
47
images/layered/Containerfile
Normal file
47
images/layered/Containerfile
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
ARG FRAPPE_BRANCH=version-15
|
||||||
|
ARG FRAPPE_PATH=https://github.com/frappe/frappe
|
||||||
|
|
||||||
|
FROM frappe/build:${FRAPPE_BRANCH} AS builder
|
||||||
|
|
||||||
|
RUN export APP_INSTALL_ARGS="" && \
|
||||||
|
if [ -n "${APPS_JSON_BASE64}" ]; then \
|
||||||
|
export APP_INSTALL_ARGS="--apps_path=/opt/frappe/apps.json"; \
|
||||||
|
fi && \
|
||||||
|
bench init ${APP_INSTALL_ARGS}\
|
||||||
|
--frappe-branch=${FRAPPE_BRANCH} \
|
||||||
|
--frappe-path=${FRAPPE_PATH} \
|
||||||
|
--no-procfile \
|
||||||
|
--no-backups \
|
||||||
|
--skip-redis-config-generation \
|
||||||
|
--verbose \
|
||||||
|
/home/frappe/frappe-bench && \
|
||||||
|
cd /home/frappe/frappe-bench && \
|
||||||
|
echo "{}" > sites/common_site_config.json && \
|
||||||
|
find apps -mindepth 1 -path "*/.git" | xargs rm -fr
|
||||||
|
|
||||||
|
FROM frappe/base:${FRAPPE_BRANCH} AS backend
|
||||||
|
|
||||||
|
USER frappe
|
||||||
|
|
||||||
|
COPY --from=builder --chown=frappe:frappe /home/frappe/frappe-bench /home/frappe/frappe-bench
|
||||||
|
|
||||||
|
WORKDIR /home/frappe/frappe-bench
|
||||||
|
|
||||||
|
VOLUME [ \
|
||||||
|
"/home/frappe/frappe-bench/sites", \
|
||||||
|
"/home/frappe/frappe-bench/sites/assets", \
|
||||||
|
"/home/frappe/frappe-bench/logs" \
|
||||||
|
]
|
||||||
|
|
||||||
|
CMD [ \
|
||||||
|
"/home/frappe/frappe-bench/env/bin/gunicorn", \
|
||||||
|
"--chdir=/home/frappe/frappe-bench/sites", \
|
||||||
|
"--bind=0.0.0.0:8000", \
|
||||||
|
"--threads=4", \
|
||||||
|
"--workers=2", \
|
||||||
|
"--worker-class=gthread", \
|
||||||
|
"--worker-tmp-dir=/dev/shm", \
|
||||||
|
"--timeout=120", \
|
||||||
|
"--preload", \
|
||||||
|
"frappe.app:application" \
|
||||||
|
]
|
||||||
@@ -70,7 +70,7 @@ RUN useradd -ms /bin/bash frappe \
|
|||||||
COPY resources/nginx-template.conf /templates/nginx/frappe.conf.template
|
COPY resources/nginx-template.conf /templates/nginx/frappe.conf.template
|
||||||
COPY resources/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh
|
COPY resources/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS build
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
||||||
@@ -98,6 +98,8 @@ RUN apt-get update \
|
|||||||
|
|
||||||
USER frappe
|
USER frappe
|
||||||
|
|
||||||
|
FROM build AS builder
|
||||||
|
|
||||||
ARG FRAPPE_BRANCH=version-15
|
ARG FRAPPE_BRANCH=version-15
|
||||||
ARG FRAPPE_PATH=https://github.com/frappe/frappe
|
ARG FRAPPE_PATH=https://github.com/frappe/frappe
|
||||||
ARG ERPNEXT_REPO=https://github.com/frappe/erpnext
|
ARG ERPNEXT_REPO=https://github.com/frappe/erpnext
|
||||||
|
|||||||
Reference in New Issue
Block a user