feat: update Dockerfile and environment scripts for improved build configuration and mock values
This commit is contained in:
parent
c5821ad9c1
commit
e6c5e6a459
4 changed files with 97 additions and 46 deletions
43
.env.marcopedone
Normal file
43
.env.marcopedone
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
BASE_URL="https://info.marcopedone.it"
|
||||
NEXT_PUBLIC_BASE_URL = "https://info.marcopedone.it"
|
||||
INTERNAL_BASE_URL = "http://web:3000"
|
||||
#Api key for the mail service
|
||||
SENDGRID_API_KEY='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'
|
||||
|
||||
#Database connection
|
||||
POSTGRES_USER="postgres"
|
||||
POSTGRES_PASSWORD="rootpost"
|
||||
POSTGRES_DB="postgres"
|
||||
PGHOST="db"
|
||||
PGPORT="5432"
|
||||
|
||||
#JWT keys
|
||||
JWT_SECRET="2247b03c268bbd2f3c29d5dbc67b2acc29e41e54a9cb8946c7c7afc0bf244d7d18f7f63d4d583a7c9b89649ab9d4350cb2f79d8c392fcb240d3729cadd5b01e4"
|
||||
|
||||
#Stripe keys
|
||||
STRIPE_SECRET_KEY = "sk_test_51P4IY3ILe4KoQRqXJJLyn33Dvb4z3ajTrMsGD4y8g4DWXMbPQcoqOAcvedemB83xn0FIdVAMGX1hk8gXYog1BXl700cRUngUET"
|
||||
NEXT_PUBLIC_STRIPE_PUBLIC_KEY = "pk_test_51P4IY3ILe4KoQRqXXUVDyiVEy9oiKdzDIB9xgDY054xVRyVZ5dfWoJlo1F5dXlQ6sEATwgylPp708PQEf2uhagUx00qcL0rRgq"
|
||||
STRIPE_WEBHOOK_SECRET = "whsec_MI03A5Owgqx0HmW8A5zf5KZvX7zSEwZk"
|
||||
|
||||
#Fatture in Cloud keys
|
||||
FIC_CLIENT_ID = "ggZlcim78qkRYrl5n2d8DpNoKGiqwRHa"
|
||||
FIC_ACCESS_TOKEN = "a/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZWYiOiJ2Z2VOWFhST0JyZUliN3dNMFFpM0NpdXFhb1VHTzBlciJ9.ewEBe0Qq4ATNyx03rTTynWHhhxYvjuCB-ra8XBJV_B0"
|
||||
FIC_COMPANY_ID = "120838"
|
||||
|
||||
#ARUBA EMAIL
|
||||
ARUBA_USER = "web@infoalloggi.it"
|
||||
ARUBA_PASS = "we2023Info.1"
|
||||
|
||||
#EXPOSED API AUTH
|
||||
EXP_API_USER = "infoalloggi-admin"
|
||||
EXP_API_PASS = "cyYk24u9fRn5DsqjFWpTV8GKBNwhQvEtbMmHxJeU73ZSaXrdCLAPg6NtDkC43ZQa9dVKHbxMv7fWpy65gFmAsEReXwuPYTL82jJnSUhrzcqGkqvsHPyxmEAFzYVSntGeQTr25dJb3UNCMuRpgwaDW69Zhc7Kj8LfB4ZCHR9kYfWVsGrx7tygqdvc82SFXj54Nhnpm6PEBLbKUuaMTQJeA3wDgPSCXwDVmhned6J8ZQ3qzNsr5bBuLtHxvFTAKGy74W2fY9pckjMRUEJYRkVPZwbvBtTKy2F8ULAseunzWj7G5d6Q3ExfmNCXqg4MDahH9cSruXyWxLNAsGQTPSFhD9HYVzB3Meg2rk5Cvacfq8mdZ6tUE4KRpwbn7jJAev7WRbVgPdncMLKxwm8yT9pQZ4DNUkaYj6ztXfhsBHqF5ErCu32Gcjb3H6KxvWsu9p5fkPrh7ZARXMLDdS82enFU4CqwztTayEmGNVgYJB"
|
||||
|
||||
MINIO_ROOT_USER= "admin"
|
||||
MINIO_ROOT_PASSWORD= "adminadmin"
|
||||
|
||||
CONCURRENT_IMAGES=2
|
||||
|
||||
SKIP_REDIS="false"
|
||||
|
||||
SKEBBY_USER="arcasms2018"
|
||||
SKEBBY_PASS="0104ce28-9680-4746-9995-8b927ba9c22b"
|
||||
|
|
@ -21,10 +21,20 @@ COPY --from=deps /app/node_modules ./node_modules
|
|||
COPY . .
|
||||
|
||||
ENV NODE_ENV=production
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
ENV SKIP_REDIS="true"
|
||||
|
||||
# Only essential build-time variables
|
||||
ARG BASE_URL
|
||||
ENV NEXT_PUBLIC_BASE_URL=$BASE_URL
|
||||
|
||||
ARG NEXT_PUBLIC_STRIPE_PUBLIC_KEY
|
||||
ENV NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY
|
||||
|
||||
ARG INTERNAL_BASE_URL
|
||||
ENV INTERNAL_BASE_URL=$INTERNAL_BASE_URL
|
||||
|
||||
# Database connection for build (if needed for static generation)
|
||||
ARG POSTGRES_USER
|
||||
ARG POSTGRES_PASSWORD
|
||||
ARG POSTGRES_DB
|
||||
|
|
@ -35,43 +45,25 @@ ENV POSTGRES_DB=$POSTGRES_DB
|
|||
ENV PGPORT=$PGPORT
|
||||
ENV POSTGRES_USER=$POSTGRES_USER
|
||||
ENV POSTGRES_PASSWORD=$POSTGRES_PASSWORD
|
||||
ARG JWT_SECRET
|
||||
ENV JWT_SECRET=$JWT_SECRET
|
||||
ARG BACKENDSERVER_URL
|
||||
ENV BACKENDSERVER_URL=$BACKENDSERVER_URL
|
||||
ARG SENDGRID_API_KEY
|
||||
ENV SENDGRID_API_KEY=$SENDGRID_API_KEY
|
||||
ARG STRIPE_SECRET_KEY
|
||||
ENV STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY
|
||||
ARG NEXT_PUBLIC_STRIPE_PUBLIC_KEY
|
||||
ENV NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY
|
||||
ARG STRIPE_WEBHOOK_SECRET
|
||||
ENV STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET
|
||||
ARG FIC_CLIENT_ID
|
||||
ENV FIC_CLIENT_ID=$FIC_CLIENT_ID
|
||||
ARG FIC_ACCESS_TOKEN
|
||||
ENV FIC_ACCESS_TOKEN=$FIC_ACCESS_TOKEN
|
||||
ARG FIC_COMPANY_ID
|
||||
ENV FIC_COMPANY_ID=$FIC_COMPANY_ID
|
||||
ARG ARUBA_USER
|
||||
ENV ARUBA_USER=$ARUBA_USER
|
||||
ARG ARUBA_PASS
|
||||
ENV ARUBA_PASS=$ARUBA_PASS
|
||||
ARG EXP_API_USER
|
||||
ENV EXP_API_USER=$EXP_API_USER
|
||||
ARG EXP_API_PASS
|
||||
ENV EXP_API_PASS=$EXP_API_PASS
|
||||
ARG KEYDB_URL
|
||||
ENV KEYDB_URL=$KEYDB_URL
|
||||
ARG TILES_URL
|
||||
ENV TILES_URL=$TILES_URL
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
ENV SKIP_REDIS="true"
|
||||
|
||||
ARG SKEBBY_USER
|
||||
ENV SKEBBY_USER=$SKEBBY_USER
|
||||
ARG SKEBBY_PASS
|
||||
ENV SKEBBY_PASS=$SKEBBY_PASS
|
||||
# Mock/empty values for validation bypass during build
|
||||
ENV JWT_SECRET="build-time-mock"
|
||||
ENV BACKENDSERVER_URL="http://localhost:1323"
|
||||
ENV SENDGRID_API_KEY="mock"
|
||||
ENV STRIPE_SECRET_KEY="mock"
|
||||
ENV STRIPE_WEBHOOK_SECRET="mock"
|
||||
ENV FIC_CLIENT_ID="mock"
|
||||
ENV FIC_ACCESS_TOKEN="mock"
|
||||
ENV FIC_COMPANY_ID="mock"
|
||||
ENV ARUBA_USER="mock"
|
||||
ENV ARUBA_PASS="mock"
|
||||
ENV EXP_API_USER="mock"
|
||||
ENV EXP_API_PASS="mock"
|
||||
ENV KEYDB_URL="localhost:6380"
|
||||
ENV TILES_URL="localhost:6379"
|
||||
ENV SKEBBY_USER="mock"
|
||||
ENV SKEBBY_PASS="mock"
|
||||
|
||||
|
||||
RUN SKIP_ENV_VALIDATION=1 npm run build
|
||||
|
||||
|
|
@ -82,7 +74,12 @@ RUN echo "Build completed successfully"
|
|||
# This stage is used to run the built application
|
||||
FROM base AS runner
|
||||
WORKDIR /app
|
||||
|
||||
ENV NODE_ENV=production
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
ENV SKIP_REDIS="false"
|
||||
|
||||
# Essential runtime variables
|
||||
ARG BASE_URL
|
||||
ENV NEXT_PUBLIC_BASE_URL=$BASE_URL
|
||||
ARG INTERNAL_BASE_URL
|
||||
|
|
@ -127,9 +124,6 @@ ARG KEYDB_URL
|
|||
ENV KEYDB_URL=$KEYDB_URL
|
||||
ARG TILES_URL
|
||||
ENV TILES_URL=$TILES_URL
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
ENV SKIP_REDIS="false"
|
||||
|
||||
ARG SKEBBY_USER
|
||||
ENV SKEBBY_USER=$SKEBBY_USER
|
||||
ARG SKEBBY_PASS
|
||||
|
|
|
|||
|
|
@ -17,12 +17,13 @@ set -euo pipefail
|
|||
# - backend -> ./apps/backend
|
||||
# - web -> ./apps/infoalloggi
|
||||
|
||||
TAG=${1:-${TAG:-latest}}
|
||||
IMAGE_REGISTRY=${IMAGE_REGISTRY:-ghcr.io}
|
||||
OWNER=${OWNER:-marcopedone}
|
||||
SERVICES=${SERVICES:-"backend web db"}
|
||||
USERNAME=${USERNAME:-marcopedone}
|
||||
TOKEN=${TOKEN:-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}
|
||||
: "${TAG:?TAG is required}"
|
||||
: "${IMAGE_REGISTRY:?IMAGE_REGISTRY is required}"
|
||||
: "${OWNER:?OWNER is required}"
|
||||
: "${SERVICES:?SERVICES is required}"
|
||||
: "${USERNAME:?USERNAME is required}"
|
||||
: "${TOKEN:?TOKEN is required}"
|
||||
: "${ENV_FILE:?ENV_FILE is required}"
|
||||
|
||||
set -x
|
||||
|
||||
|
|
@ -56,7 +57,7 @@ for svc in ${SERVICES}; do
|
|||
|
||||
IMAGE="${IMAGE_REGISTRY}/${OWNER}/infoalloggi-${svc}:${TAG}"
|
||||
echo "Building ${svc} -> ${IMAGE} (context: ${ctx})"
|
||||
docker build -t "${IMAGE}" -f "$ctx/$dockerfile" "$ctx"
|
||||
docker build --build-arg ENV_FILE="${ENV_FILE}" -t "${IMAGE}" -f "$ctx/$dockerfile" "$ctx"
|
||||
|
||||
echo "Pushing ${IMAGE}"
|
||||
docker push "${IMAGE}"
|
||||
|
|
|
|||
13
deploy_marcopedone.sh
Normal file
13
deploy_marcopedone.sh
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Preset for staging environment
|
||||
export TAG="latest"
|
||||
export IMAGE_REGISTRY="ghcr.io"
|
||||
export OWNER="marcopedone"
|
||||
export SERVICES="web backend db"
|
||||
export USERNAME="marcopedone"
|
||||
export TOKEN="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"
|
||||
export ENV_FILE=".env.marcopedone"
|
||||
|
||||
./build_and_push_ghcr.sh
|
||||
Loading…
Add table
Reference in a new issue