From de893803da4ced36a85b83aed31500b3ee0e570f Mon Sep 17 00:00:00 2001 From: Bohdan Kucherivayi Date: Sun, 1 Dec 2024 17:43:17 +0200 Subject: [PATCH 1/2] fix: inconsistency --- .github/workflows/docker-build-push.yml | 2 +- compose.yaml | 8 +- development/apps.json | 8 +- docker-bake.hcl | 10 ++ docker-compose-no-dbs.yml | 171 ++++++++++++++++++++++++ docker-compose.yml | 54 +++++--- images/custom/Containerfile | 69 ++++------ images/production/Containerfile | 69 +++++----- resources/nginx-entrypoint.sh | 2 +- resources/nginx-template.conf | 3 +- 10 files changed, 291 insertions(+), 105 deletions(-) create mode 100644 docker-compose-no-dbs.yml diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index dac92bf1..657a0321 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -67,7 +67,7 @@ jobs: with: push: true env: - REGISTRY_USER: localhost:5000/frappe + REGISTRY_USER: zapal - name: Setup Python uses: actions/setup-python@v5 diff --git a/compose.yaml b/compose.yaml index 21839d0c..119c84f4 100644 --- a/compose.yaml +++ b/compose.yaml @@ -13,7 +13,7 @@ x-depends-on-configurator: &depends_on_configurator x-backend-defaults: &backend_defaults <<: [*depends_on_configurator, *customizable_image] volumes: - - erp-bench:/home/zapal/frappe-bench + - erp-bench:/home/frappe/frappe-bench services: configurator: @@ -59,7 +59,7 @@ services: PROXY_READ_TIMEOUT: ${PROXY_READ_TIMEOUT:-120} CLIENT_MAX_BODY_SIZE: ${CLIENT_MAX_BODY_SIZE:-50m} volumes: - - erp-bench:/home/zapal/frappe-bench + - erp-bench:/home/frappe/frappe-bench depends_on: - backend - websocket @@ -69,9 +69,9 @@ services: platform: linux/amd64 command: - node - - /home/zapal/frappe-bench/apps/frappe/socketio.js + - /home/frappe/frappe-bench/apps/frappe/socketio.js volumes: - - erp-bench:/home/zapal/frappe-bench + - erp-bench:/home/frappe/frappe-bench queue-short: <<: *backend_defaults diff --git a/development/apps.json b/development/apps.json index 4bf885c7..51a1e4e2 100644 --- a/development/apps.json +++ b/development/apps.json @@ -8,7 +8,11 @@ "branch": "version-15" }, { - "url": "https://github.com/zapal-tech/erp-insights.git", + "url": "https://github.com/zapal-tech/erp-crm.git", "branch": "develop" + }, + { + "url": "https://github.com/zapal-tech/erp-insights.git", + "branch": "version-3" } -] \ No newline at end of file +] diff --git a/docker-bake.hcl b/docker-bake.hcl index 9078d606..4a2d67a6 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -21,6 +21,10 @@ variable "HRMS_VERSION" { default = "version-15" } +variable "CRM_VERSION" { + default = "develop" +} + variable "INSIGHTS_VERSION" { default = "version-3" } @@ -41,6 +45,10 @@ variable "INSIGHTS_REPO" { default = "https://github.com/zapal-tech/erp-insights" } +variable "CRM_REPO" { + default = "https://github.com/zapal-tech/erp-crm" +} + variable "BENCH_REPO" { default = "https://github.com/frappe/bench" } @@ -92,11 +100,13 @@ target "default-args" { ERPNEXT_REPO = "${ERPNEXT_REPO}" HRMS_REPO = "${HRMS_REPO}" INSIGHTS_REPO = "${INSIGHTS_REPO}" + CRM_REPO = "${CRM_REPO}" BENCH_REPO = "${BENCH_REPO}" FRAPPE_BRANCH = "${FRAPPE_VERSION}" ERPNEXT_BRANCH = "${ERPNEXT_VERSION}" HRMS_BRANCH = "${HRMS_VERSION}" INSIGHTS_BRANCH = "${INSIGHTS_VERSION}" + CRM_BRANCH = "${CRM_VERSION}" PYTHON_VERSION = "${PYTHON_VERSION}" NODE_VERSION = "${NODE_VERSION}" } diff --git a/docker-compose-no-dbs.yml b/docker-compose-no-dbs.yml new file mode 100644 index 00000000..567d5813 --- /dev/null +++ b/docker-compose-no-dbs.yml @@ -0,0 +1,171 @@ +name: erp +services: + backend: + depends_on: + configurator: + condition: service_completed_successfully + required: true + image: zapal/erp:v15.12.2 + networks: + default: null + platform: linux/amd64 + pull_policy: always + volumes: + - type: volume + source: erp-bench + target: /home/frappe/frappe-bench + volume: {} + configurator: + command: + - | + ls -1 apps > sites/apps.txt; bench set-config -g db_host $$DB_HOST; bench set-config -gp db_port $$DB_PORT; bench set-config -g redis_cache "redis://$$REDIS_CACHE"; bench set-config -g redis_queue "redis://$$REDIS_QUEUE"; bench set-config -g redis_socketio "redis://$$REDIS_QUEUE"; bench set-config -gp socketio_port $$SOCKETIO_PORT; + entrypoint: + - bash + - -c + environment: + DB_HOST: "" + DB_PORT: "" + REDIS_CACHE: "" + REDIS_QUEUE: "" + SOCKETIO_PORT: "9000" + image: zapal/erp:v15.12.2 + networks: + default: null + platform: linux/amd64 + pull_policy: always + volumes: + - type: volume + source: erp-bench + target: /home/frappe/frappe-bench + volume: {} + frontend: + command: + - nginx-entrypoint.sh + depends_on: + backend: + condition: service_started + required: true + websocket: + condition: service_started + required: true + environment: + BACKEND: backend:8000 + CLIENT_MAX_BODY_SIZE: 50m + FRAPPE_SITE_NAME_HEADER: $$host + PROXY_READ_TIMEOUT: "120" + SOCKETIO: websocket:9000 + UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1 + UPSTREAM_REAL_IP_HEADER: X-Forwarded-For + UPSTREAM_REAL_IP_RECURSIVE: "off" + image: zapal/erp:v15.12.2 + networks: + default: null + platform: linux/amd64 + ports: + - mode: ingress + target: 8080 + published: "8080" + protocol: tcp + pull_policy: always + volumes: + - type: volume + source: erp-bench + target: /home/frappe/frappe-bench + volume: {} + queue-long: + command: + - bench + - worker + - --queue + - long,default,short + depends_on: + configurator: + condition: service_completed_successfully + required: true + image: zapal/erp:v15.12.2 + networks: + default: null + platform: linux/amd64 + pull_policy: always + volumes: + - type: volume + source: erp-bench + target: /home/frappe/frappe-bench + volume: {} + queue-short: + command: + - bench + - worker + - --queue + - short,default + depends_on: + configurator: + condition: service_completed_successfully + required: true + image: zapal/erp:v15.12.2 + networks: + default: null + platform: linux/amd64 + pull_policy: always + volumes: + - type: volume + source: erp-bench + target: /home/frappe/frappe-bench + volume: {} + scheduler: + command: + - bench + - schedule + depends_on: + configurator: + condition: service_completed_successfully + required: true + image: zapal/erp:v15.12.2 + networks: + default: null + platform: linux/amd64 + pull_policy: always + volumes: + - type: volume + source: erp-bench + target: /home/frappe/frappe-bench + volume: {} + websocket: + command: + - node + - /home/frappe/frappe-bench/apps/frappe/socketio.js + depends_on: + configurator: + condition: service_completed_successfully + required: true + image: zapal/erp:v15.12.2 + networks: + default: null + platform: linux/amd64 + pull_policy: always + volumes: + - type: volume + source: erp-bench + target: /home/frappe/frappe-bench + volume: {} +networks: + default: + name: erp_default +volumes: + erp-bench: + name: erp_erp-bench +x-backend-defaults: + depends_on: + configurator: + condition: service_completed_successfully + image: zapal/erp:v15.12.2 + pull_policy: always + volumes: + - erp-bench:/home/frappe/frappe-bench +x-customizable-image: + image: zapal/erp:v15.12.2 + pull_policy: always +x-depends-on-configurator: + depends_on: + configurator: + condition: service_completed_successfully diff --git a/docker-compose.yml b/docker-compose.yml index e44b74cb..bb3b86d7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,13 +5,15 @@ services: configurator: condition: service_completed_successfully required: true - image: zapal/erp:latest + image: zapal/erp:v15.12.2 networks: default: null + platform: linux/amd64 + pull_policy: always volumes: - type: volume source: erp-bench - target: /home/zapal/frappe-bench + target: /home/frappe/frappe-bench volume: {} configurator: command: @@ -36,13 +38,15 @@ services: REDIS_CACHE: redis-cache:6379 REDIS_QUEUE: redis-queue:6379 SOCKETIO_PORT: "9000" - image: zapal/erp:latest + image: zapal/erp:v15.12.2 networks: default: null + platform: linux/amd64 + pull_policy: always volumes: - type: volume source: erp-bench - target: /home/zapal/frappe-bench + target: /home/frappe/frappe-bench volume: {} db: command: @@ -57,7 +61,7 @@ services: - CMD-SHELL - mysqladmin ping -h localhost --password=123 interval: 1s - retries: 15 + retries: 20 image: mariadb:10.6 networks: default: null @@ -85,18 +89,20 @@ services: UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1 UPSTREAM_REAL_IP_HEADER: X-Forwarded-For UPSTREAM_REAL_IP_RECURSIVE: "off" - image: zapal/erp:latest + image: zapal/erp:v15.12.2 networks: default: null + platform: linux/amd64 ports: - mode: ingress target: 8080 published: "8080" protocol: tcp + pull_policy: always volumes: - type: volume source: erp-bench - target: /home/zapal/frappe-bench + target: /home/frappe/frappe-bench volume: {} queue-long: command: @@ -108,13 +114,15 @@ services: configurator: condition: service_completed_successfully required: true - image: zapal/erp:latest + image: zapal/erp:v15.12.2 networks: default: null + platform: linux/amd64 + pull_policy: always volumes: - type: volume source: erp-bench - target: /home/zapal/frappe-bench + target: /home/frappe/frappe-bench volume: {} queue-short: command: @@ -126,13 +134,15 @@ services: configurator: condition: service_completed_successfully required: true - image: zapal/erp:latest + image: zapal/erp:v15.12.2 networks: default: null + platform: linux/amd64 + pull_policy: always volumes: - type: volume source: erp-bench - target: /home/zapal/frappe-bench + target: /home/frappe/frappe-bench volume: {} redis-cache: image: redis:6.2-alpine @@ -160,29 +170,33 @@ services: configurator: condition: service_completed_successfully required: true - image: zapal/erp:latest + image: zapal/erp:v15.12.2 networks: default: null + platform: linux/amd64 + pull_policy: always volumes: - type: volume source: erp-bench - target: /home/zapal/frappe-bench + target: /home/frappe/frappe-bench volume: {} websocket: command: - node - - /home/zapal/frappe-bench/apps/frappe/socketio.js + - /home/frappe/frappe-bench/apps/frappe/socketio.js depends_on: configurator: condition: service_completed_successfully required: true - image: zapal/erp:latest + image: zapal/erp:v15.12.2 networks: default: null + platform: linux/amd64 + pull_policy: always volumes: - type: volume source: erp-bench - target: /home/zapal/frappe-bench + target: /home/frappe/frappe-bench volume: {} networks: default: @@ -200,11 +214,13 @@ x-backend-defaults: depends_on: configurator: condition: service_completed_successfully - image: zapal/erp:latest + image: zapal/erp:v15.12.2 + pull_policy: always volumes: - - erp-bench:/home/zapal/frappe-bench + - erp-bench:/home/frappe/frappe-bench x-customizable-image: - image: zapal/erp:latest + image: zapal/erp:v15.12.2 + pull_policy: always x-depends-on-configurator: depends_on: configurator: diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 71c7496c..822d79ef 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -2,13 +2,16 @@ ARG PYTHON_VERSION=3.11.6 ARG DEBIAN_BASE=bookworm FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base +COPY resources/nginx-template.conf /templates/nginx/frappe.conf.template +COPY resources/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh + ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm ARG NODE_VERSION=18.18.2 -ENV NVM_DIR=/home/zapal/.nvm +ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} -RUN useradd -ms /bin/bash zapal \ +RUN useradd -ms /bin/bash frappe \ && apt-get update \ && apt-get install --no-install-recommends -y \ curl \ @@ -29,8 +32,8 @@ RUN useradd -ms /bin/bash zapal \ mariadb-client \ less \ # Postgres - # libpq-dev \ - # postgresql-client \ + libpq-dev \ + postgresql-client \ # For healthcheck wait-for-it \ jq \ @@ -43,9 +46,9 @@ RUN useradd -ms /bin/bash zapal \ && npm install -g yarn \ && nvm alias default v${NODE_VERSION} \ && rm -rf ${NVM_DIR}/.cache \ - && echo 'export NVM_DIR="/home/zapal/.nvm"' >>/home/zapal/.bashrc \ - && echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >>/home/zapal/.bashrc \ - && echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >>/home/zapal/.bashrc \ + && echo 'export NVM_DIR="/home/frappe/.nvm"' >>/home/frappe/.bashrc \ + && echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >>/home/frappe/.bashrc \ + && echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >>/home/frappe/.bashrc \ # Install wkhtmltopdf with patched qt && if [ "$(uname -m)" = "aarch64" ]; then export ARCH=arm64; fi \ && if [ "$(uname -m)" = "x86_64" ]; then export ARCH=amd64; fi \ @@ -61,16 +64,13 @@ RUN useradd -ms /bin/bash zapal \ && sed -i '/user www-data/d' /etc/nginx/nginx.conf \ && ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log \ && touch /run/nginx.pid \ - && chown -R zapal:zapal /etc/nginx/conf.d \ - && chown -R zapal:zapal /etc/nginx/nginx.conf \ - && chown -R zapal:zapal /var/log/nginx \ - && chown -R zapal:zapal /var/lib/nginx \ - && chown -R zapal:zapal /run/nginx.pid \ + && chown -R frappe:frappe /etc/nginx/conf.d \ + && chown -R frappe:frappe /etc/nginx/nginx.conf \ + && chown -R frappe:frappe /var/log/nginx \ + && chown -R frappe:frappe /var/lib/nginx \ + && chown -R frappe:frappe /run/nginx.pid \ && chmod 755 /usr/local/bin/nginx-entrypoint.sh \ - && chmod 644 /templates/nginx/erp.conf.template - -COPY resources/nginx-template.conf /templates/nginx/erp.conf.template -COPY resources/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh + && chmod 644 /templates/nginx/frappe.conf.template FROM base AS builder @@ -110,16 +110,10 @@ RUN if [ -n "${APPS_JSON_BASE64}" ]; then \ mkdir /opt/frappe && echo "${APPS_JSON_BASE64}" | base64 -d > /opt/frappe/apps.json; \ fi -USER zapal +USER frappe ARG FRAPPE_BRANCH=version-15 ARG FRAPPE_PATH=https://github.com/zapal-tech/erp-frappe -ARG ERPNEXT_REPO=https://github.com/zapal-tech/erp-erpnext -ARG ERPNEXT_BRANCH=version-15 -ARG HRMS_REPO=https://github.com/zapal-tech/erp-hrms -ARG HRMS_BRANCH=version-15 -ARG INSIGHTS_REPO=https://github.com/zapal-tech/erp-insights -ARG INSIGHTS_BRANCH=version-3 RUN export APP_INSTALL_ARGS="" && \ if [ -n "${APPS_JSON_BASE64}" ]; then \ @@ -132,37 +126,28 @@ RUN export APP_INSTALL_ARGS="" && \ --no-backups \ --skip-redis-config-generation \ --verbose \ - /home/zapal/frappe-bench && \ - cd /home/zapal/frappe-bench && \ - echo "frappe\nhrms\nerpnext" > sites/apps.txt + /home/frappe/frappe-bench && \ + cd /home/frappe/frappe-bench && \ echo "{}" > sites/common_site_config.json && \ find apps -mindepth 1 -path "*/.git" | xargs rm -fr -WORKDIR /home/zapal/frappe-bench - -RUN bench get-app --branch=${ERPNEXT_BRANCH} --resolve-deps erpnext ${ERPNEXT_REPO} -RUN bench get-app --branch=${HRMS_BRANCH} --resolve-deps hrms ${HRMS_REPO} -RUN bench get-app --branch=${INSIGHTS_BRANCH} --resolve-deps insights ${INSIGHTS_REPO} - FROM base as backend -USER zapal +USER frappe -COPY --from=builder --chown=zapal:zapal /home/zapal/frappe-bench /home/zapal/frappe-bench -COPY /templates/nginx/erp.conf.template /templates/nginx/erp.conf.template -COPY /usr/local/bin/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh +COPY --from=builder --chown=frappe:frappe /home/frappe/frappe-bench /home/frappe/frappe-bench -WORKDIR /home/zapal/frappe-bench +WORKDIR /home/frappe/frappe-bench VOLUME [ \ - "/home/zapal/frappe-bench/sites", \ - "/home/zapal/frappe-bench/sites/assets", \ - "/home/zapal/frappe-bench/logs" \ + "/home/frappe/frappe-bench/sites", \ + "/home/frappe/frappe-bench/sites/assets", \ + "/home/frappe/frappe-bench/logs" \ ] CMD [ \ - "/home/zapal/frappe-bench/env/bin/gunicorn", \ - "--chdir=/home/zapal/frappe-bench/sites", \ + "/home/frappe/frappe-bench/env/bin/gunicorn", \ + "--chdir=/home/frappe/frappe-bench/sites", \ "--bind=0.0.0.0:8000", \ "--threads=4", \ "--workers=2", \ diff --git a/images/production/Containerfile b/images/production/Containerfile index dc5e1763..ab690b88 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -5,13 +5,10 @@ FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm ARG NODE_VERSION=18.18.2 -ENV NVM_DIR=/home/zapal/.nvm +ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} -COPY resources/nginx-template.conf /templates/nginx/erp.conf.template -COPY resources/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh - -RUN useradd -ms /bin/bash zapal \ +RUN useradd -ms /bin/bash frappe \ && apt-get update \ && apt-get install --no-install-recommends -y \ curl \ @@ -32,8 +29,8 @@ RUN useradd -ms /bin/bash zapal \ mariadb-client \ less \ # Postgres - # libpq-dev \ - # postgresql-client \ + libpq-dev \ + postgresql-client \ # For healthcheck wait-for-it \ jq \ @@ -46,9 +43,9 @@ RUN useradd -ms /bin/bash zapal \ && npm install -g yarn \ && nvm alias default v${NODE_VERSION} \ && rm -rf ${NVM_DIR}/.cache \ - && echo 'export NVM_DIR="/home/zapal/.nvm"' >>/home/zapal/.bashrc \ - && echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >>/home/zapal/.bashrc \ - && echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >>/home/zapal/.bashrc \ + && echo 'export NVM_DIR="/home/frappe/.nvm"' >>/home/frappe/.bashrc \ + && echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >>/home/frappe/.bashrc \ + && echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >>/home/frappe/.bashrc \ # Install wkhtmltopdf with patched qt && if [ "$(uname -m)" = "aarch64" ]; then export ARCH=arm64; fi \ && if [ "$(uname -m)" = "x86_64" ]; then export ARCH=amd64; fi \ @@ -64,13 +61,14 @@ RUN useradd -ms /bin/bash zapal \ && sed -i '/user www-data/d' /etc/nginx/nginx.conf \ && ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log \ && touch /run/nginx.pid \ - && chown -R zapal:zapal /etc/nginx/conf.d \ - && chown -R zapal:zapal /etc/nginx/nginx.conf \ - && chown -R zapal:zapal /var/log/nginx \ - && chown -R zapal:zapal /var/lib/nginx \ - && chown -R zapal:zapal /run/nginx.pid \ - && chmod 755 /usr/local/bin/nginx-entrypoint.sh \ - && chmod 644 /templates/nginx/erp.conf.template + && chown -R frappe:frappe /etc/nginx/conf.d \ + && chown -R frappe:frappe /etc/nginx/nginx.conf \ + && chown -R frappe:frappe /var/log/nginx \ + && chown -R frappe:frappe /var/lib/nginx \ + && chown -R frappe:frappe /run/nginx.pid + +COPY resources/nginx-template.conf /templates/nginx/frappe.conf.template +COPY resources/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh FROM base AS build @@ -98,7 +96,7 @@ RUN apt-get update \ libbz2-dev \ && rm -rf /var/lib/apt/lists/* -USER zapal +USER frappe FROM build AS builder @@ -106,6 +104,8 @@ ARG FRAPPE_BRANCH=version-15 ARG FRAPPE_PATH=https://github.com/zapal-tech/erp-frappe ARG ERPNEXT_REPO=https://github.com/zapal-tech/erp-erpnext ARG ERPNEXT_BRANCH=version-15 +ARG CRM_REPO=https://github.com/zapal-tech/erp-crm +ARG CRM_BRANCH=develop ARG HRMS_REPO=https://github.com/zapal-tech/erp-hrms ARG HRMS_BRANCH=version-15 ARG INSIGHTS_REPO=https://github.com/zapal-tech/erp-insights @@ -118,35 +118,34 @@ RUN bench init \ --no-backups \ --skip-redis-config-generation \ --verbose \ - /home/zapal/frappe-bench && \ - cd /home/zapal/frappe-bench && \ - echo "frappe\nhrms\nerpnext" > sites/apps.txt && \ - echo '{"socketio_port": 9000}' > sites/common_site_config.json && \ + /home/frappe/frappe-bench && \ + cd /home/frappe/frappe-bench && \ + bench get-app --branch=${ERPNEXT_BRANCH} --resolve-deps erpnext ${ERPNEXT_REPO} && \ + bench get-app --branch=${CRM_BRANCH} --resolve-deps crm ${CRM_REPO} && \ + bench get-app --branch=${HRMS_BRANCH} --resolve-deps hrms ${HRMS_REPO} && \ + bench get-app --branch=${INSIGHTS_BRANCH} --resolve-deps insights ${INSIGHTS_REPO} && \ + echo "{}" > sites/common_site_config.json && \ find apps -mindepth 1 -path "*/.git" | xargs rm -fr -FROM builder AS erpnext +FROM base AS erpnext -USER zapal - -RUN cd /home/zapal/frappe-bench && bench get-app --branch=${ERPNEXT_BRANCH} --resolve-deps erpnext ${ERPNEXT_REPO} -RUN cd /home/zapal/frappe-bench && bench get-app --branch=${HRMS_BRANCH} --resolve-deps hrms ${HRMS_REPO} -RUN cd /home/zapal/frappe-bench && bench get-app --branch=${INSIGHTS_BRANCH} --resolve-deps insights ${INSIGHTS_REPO} +USER frappe RUN echo "echo \"Commands restricted in production container, Read FAQ before you proceed: https://frappe.fyi/ctr-faq\"" >> ~/.bashrc -COPY --from=builder --chown=zapal:zapal /home/zapal/frappe-bench /home/zapal/frappe-bench +COPY --from=builder --chown=frappe:frappe /home/frappe/frappe-bench /home/frappe/frappe-bench -WORKDIR /home/zapal/frappe-bench +WORKDIR /home/frappe/frappe-bench VOLUME [ \ - "/home/zapal/frappe-bench/sites", \ - "/home/zapal/frappe-bench/sites/assets", \ - "/home/zapal/frappe-bench/logs" \ + "/home/frappe/frappe-bench/sites", \ + "/home/frappe/frappe-bench/sites/assets", \ + "/home/frappe/frappe-bench/logs" \ ] CMD [ \ - "/home/zapal/frappe-bench/env/bin/gunicorn", \ - "--chdir=/home/zapal/frappe-bench/sites", \ + "/home/frappe/frappe-bench/env/bin/gunicorn", \ + "--chdir=/home/frappe/frappe-bench/sites", \ "--bind=0.0.0.0:8000", \ "--threads=4", \ "--workers=2", \ diff --git a/resources/nginx-entrypoint.sh b/resources/nginx-entrypoint.sh index bb9fb1fc..50408e56 100644 --- a/resources/nginx-entrypoint.sh +++ b/resources/nginx-entrypoint.sh @@ -47,6 +47,6 @@ envsubst '${BACKEND} ${FRAPPE_SITE_NAME_HEADER} ${PROXY_READ_TIMEOUT} ${CLIENT_MAX_BODY_SIZE}' \ - /etc/nginx/conf.d/erp.conf + /etc/nginx/conf.d/frappe.conf nginx -g 'daemon off;' diff --git a/resources/nginx-template.conf b/resources/nginx-template.conf index aeb13ed3..e6d796a3 100644 --- a/resources/nginx-template.conf +++ b/resources/nginx-template.conf @@ -8,7 +8,8 @@ upstream socketio-server { server { listen 8080; - root /home/zapal/frappe-bench/sites; + server_name ${FRAPPE_SITE_NAME_HEADER}; + root /home/frappe/frappe-bench/sites; proxy_buffer_size 128k; proxy_buffers 4 256k; From dab5cca20b4d5595a7b91a3b0e3c318291d53757 Mon Sep 17 00:00:00 2001 From: Bohdan Kucherivayi Date: Sun, 1 Dec 2024 17:52:33 +0200 Subject: [PATCH 2/2] fix: build process --- .github/workflows/docker-build-push.yml | 4 ++-- docker-bake.hcl | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index 657a0321..081193a8 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -86,8 +86,8 @@ jobs: if: ${{ inputs.push }} uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} - name: Push if: ${{ inputs.push }} diff --git a/docker-bake.hcl b/docker-bake.hcl index 4a2d67a6..8276f6d9 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -110,6 +110,7 @@ target "default-args" { PYTHON_VERSION = "${PYTHON_VERSION}" NODE_VERSION = "${NODE_VERSION}" } + platforms = ["linux/amd64", "linux/arm64"] } target "erpnext" {