Restructure scripts into dev/ and prod/ for the devcontainer
- scripts/prod: entrypoint, db-setup and schema.sql shipped in the image - scripts/dev: seed/clear db, psql and cleanup, run natively in the devcontainer instead of via docker-compose - move setup.cfg to the repo root so linters pick it up - Makefile targets run directly in the devcontainer Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7c2b9fb3f4
commit
9895017385
10 files changed
+36
-30
No files matched your search
+1
-2
@@ -14,8 +14,7 @@ ENV PYTHONPATH=/app/
|
|||||||
ENV FLASK_APP=max.app
|
ENV FLASK_APP=max.app
|
||||||
|
|
||||||
COPY max/ ./max
|
COPY max/ ./max
|
||||||
COPY scripts/entrypoint.sh .
|
COPY scripts/prod/ .
|
||||||
COPY scripts/db-setup.sh .
|
|
||||||
|
|
||||||
ENTRYPOINT ["./entrypoint.sh"]
|
ENTRYPOINT ["./entrypoint.sh"]
|
||||||
CMD ["gunicorn", "-w", "1", "-b", "0.0.0.0:8000", "max.app:app"]
|
CMD ["gunicorn", "-w", "1", "-b", "0.0.0.0:8000", "max.app:app"]
|
||||||
@@ -1,36 +1,21 @@
|
|||||||
# DEVELOPMENT SERVER
|
# DEV
|
||||||
|
seed-dev: clear-dev
|
||||||
|
FLASK_APP=max.app FLASK_DEBUG=1 scripts/dev/seed-db.sh
|
||||||
|
|
||||||
seed-dev:
|
clear-dev:
|
||||||
scripts/entrypoint-dev.sh
|
scripts/dev/clear-db.sh
|
||||||
|
|
||||||
build-dev:
|
run-dev:
|
||||||
docker build -t max:dev -f Dockerfile.dev .
|
FLASK_APP=max.app FLASK_DEBUG=1 flask run --host 0.0.0.0 --port 8757
|
||||||
|
|
||||||
run-dev: | build-dev
|
run-dev-as-prod:
|
||||||
# bash -c "trap 'docker-compose -f dc.dev.yml down' EXIT; MAX_COMMAND=\"flask run --host 0.0.0.0 --port 8000\" docker-compose -f dc.dev.yml up --build"
|
mkdir -p log
|
||||||
MAX_COMMAND="flask run --host 0.0.0.0 --port 8000" docker-compose -f dc.dev.yml up
|
FLASK_APP=max.app LOG_DIR=log gunicorn -w 1 -b 0.0.0.0:8757 max.app:app
|
||||||
|
|
||||||
run-bash: | build-dev
|
run-cleanup:
|
||||||
MAX_COMMAND="sleep infinity" docker-compose -f dc.dev.yml up -d
|
scripts/dev/cleanup.sh
|
||||||
docker-compose -f dc.dev.yml exec max "./entrypoint-dev.sh"
|
|
||||||
docker-compose -f dc.dev.yml exec max chown -R $$(id -u $${USER}):$$(id -g $${USER}) /app
|
|
||||||
docker-compose -f dc.dev.yml exec -u $$(id -u $${USER}):$$(id -g $${USER}) max bash || true
|
|
||||||
docker-compose -f dc.dev.yml down
|
|
||||||
|
|
||||||
run-bash-root: | build-dev
|
|
||||||
MAX_COMMAND="sleep infinity" docker-compose -f dc.dev.yml up -d
|
|
||||||
docker-compose -f dc.dev.yml exec max "./entrypoint-dev.sh"
|
|
||||||
docker-compose -f dc.dev.yml exec max bash || true
|
|
||||||
docker-compose -f dc.dev.yml down
|
|
||||||
|
|
||||||
stop-dev:
|
|
||||||
docker-compose -f dc.dev.yml down
|
|
||||||
|
|
||||||
run-cleanup: | build-dev
|
|
||||||
docker run -ti -v `pwd`/max:/app/max --entrypoint="" max-dev ./cleanup.sh
|
|
||||||
|
|
||||||
# PROD
|
# PROD
|
||||||
|
|
||||||
build-prod:
|
build-prod:
|
||||||
docker build -t max:$(shell cat VERSION) .
|
docker build -t max:$(shell cat VERSION) .
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
printf "Black:\n"
|
printf "Black:\n"
|
||||||
black max/
|
black max/
|
||||||
printf "\nIsort:\n"
|
printf "\nIsort:\n"
|
||||||
Executable
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PGPASSWORD="$PGSQL_PASSWORD" psql -v ON_ERROR_STOP=1 -h "$PGSQL_HOST" -p "$PGSQL_PORT" -U "$PGSQL_USER" -d "$PGSQL_NAME" \
|
||||||
|
-c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
|
||||||
@@ -1,2 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
PGPASSWORD="$PGSQL_PASSWORD" psql -h "$PGSQL_HOST" -p "$PGSQL_PORT" -U "$PGSQL_USER" -d "$PGSQL_NAME"
|
PGPASSWORD="$PGSQL_PASSWORD" psql -h "$PGSQL_HOST" -p "$PGSQL_PORT" -U "$PGSQL_USER" -d "$PGSQL_NAME"
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
source ../prod/db-setup.sh
|
||||||
|
|
||||||
|
flask add-domain finn.st
|
||||||
|
flask add-domain stutzenste.in
|
||||||
|
flask reset-admin admin@finn.st admin
|
||||||
@@ -15,6 +15,6 @@ wait-for-it --timeout=15 "$PGSQL_HOST:$PGSQL_PORT"
|
|||||||
|
|
||||||
# Create schema in postgresql
|
# Create schema in postgresql
|
||||||
export PGPASSWORD="$PGSQL_PASSWORD"
|
export PGPASSWORD="$PGSQL_PASSWORD"
|
||||||
psql -1 -h "$PGSQL_HOST" -p "$PGSQL_PORT" -U "$PGSQL_USER" -d "$PGSQL_NAME" -f max/db/schema.sql
|
psql -1 -v ON_ERROR_STOP=1 -h "$PGSQL_HOST" -p "$PGSQL_PORT" -U "$PGSQL_USER" -d "$PGSQL_NAME" -f "$(dirname "${BASH_SOURCE[0]}")/schema.sql"
|
||||||
|
|
||||||
echo "end db setup"
|
echo "end db setup"
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user