diff --git a/stack-orchestrator/compose/docker-compose-snowballtools-base-backend.yml b/stack-orchestrator/compose/docker-compose-snowballtools-base-backend.yml new file mode 100644 index 0000000..3445ed9 --- /dev/null +++ b/stack-orchestrator/compose/docker-compose-snowballtools-base-backend.yml @@ -0,0 +1,13 @@ +services: + snowballtools-base-backend: + image: cerc/snowballtools-base-backend:local + restart: always + volumes: + - data:/data + - config:/config:ro + ports: + - 8000 + +volumes: + data: + config: diff --git a/stack-orchestrator/container-build/cerc-snowballtools-base-backend/Dockerfile b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/Dockerfile new file mode 100644 index 0000000..ca5c458 --- /dev/null +++ b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/Dockerfile @@ -0,0 +1,6 @@ +FROM cerc/snowballtools-base-backend-base:local + +WORKDIR /app/packages/backend +COPY run.sh . + +ENTRYPOINT ["./run.sh"] diff --git a/stack-orchestrator/container-build/cerc-snowballtools-base-backend/Dockerfile-base b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/Dockerfile-base new file mode 100644 index 0000000..7a264ca --- /dev/null +++ b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/Dockerfile-base @@ -0,0 +1,26 @@ +FROM ubuntu:22.04 as builder + +RUN apt update && \ + apt install -y --no-install-recommends --no-install-suggests \ + ca-certificates curl gnupg + +# Node +ARG NODE_MAJOR=20 +RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \ + apt update && apt install -y nodejs + +# npm setup +RUN npm config set @cerc-io:registry https://git.vdb.to/api/packages/cerc-io/npm/ && npm install -g yarn + +COPY . /app/ +WORKDIR /app/ + +RUN find . -name 'node_modules' | xargs -n1 rm -rf +RUN yarn && yarn build --ignore frontend + +FROM cerc/webapp-base:local + +COPY --from=builder /app /app + +WORKDIR /app/packages/backend diff --git a/stack-orchestrator/container-build/cerc-snowballtools-base-backend/build.sh b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/build.sh new file mode 100755 index 0000000..4f7c7cd --- /dev/null +++ b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/build.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +# Build cerc/webapp-deployer-backend + +source ${CERC_CONTAINER_BASE_DIR}/build-base.sh + +# See: https://stackoverflow.com/a/246128/1701505 +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +docker build -t cerc/snowballtools-base-backend-base:local ${build_command_args} -f ${SCRIPT_DIR}/Dockerfile-base ${CERC_REPO_BASE_DIR}/snowballtools-base +docker build -t cerc/snowballtools-base-backend:local ${build_command_args} ${SCRIPT_DIR} diff --git a/stack-orchestrator/container-build/cerc-snowballtools-base-backend/run.sh b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/run.sh new file mode 100755 index 0000000..ae14ed1 --- /dev/null +++ b/stack-orchestrator/container-build/cerc-snowballtools-base-backend/run.sh @@ -0,0 +1,19 @@ +#!/bin/bash + + +LACONIC_HOSTED_CONFIG_FILE=${LACONIC_HOSTED_CONFIG_FILE} +if [ -z "${LACONIC_HOSTED_CONFIG_FILE}" ]; then + if [ -f "/config/laconic-hosted-config.yml" ]; then + LACONIC_HOSTED_CONFIG_FILE="/config/laconic-hosted-config.yml" + elif [ -f "/config/config.yml" ]; then + LACONIC_HOSTED_CONFIG_FILE="/config/config.yml" + fi +fi + +if [ -f "${LACONIC_HOSTED_CONFIG_FILE}" ]; then + /scripts/apply-webapp-config.sh $LACONIC_HOSTED_CONFIG_FILE "`pwd`/dist" +fi + +/scripts/apply-runtime-env.sh "`pwd`/dist" + +yarn start diff --git a/stack-orchestrator/stacks/snowballtools-base-backend/stack.yml b/stack-orchestrator/stacks/snowballtools-base-backend/stack.yml new file mode 100644 index 0000000..3ee19b0 --- /dev/null +++ b/stack-orchestrator/stacks/snowballtools-base-backend/stack.yml @@ -0,0 +1,10 @@ +version: "1.0" +name: snowballtools-base-backend +description: "snowballtools-base-backend" +repos: + - github.com/snowball-tools/snowballtools-base +containers: + - cerc/webapp-base + - cerc/snowballtools-base-backend +pods: + - snowballtools-base-backend