Initial commit
This commit is contained in:
commit
793bb6a488
182 changed files with 17153 additions and 0 deletions
8
docker-dev/.env-db
Normal file
8
docker-dev/.env-db
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# PG* variables are used by psql client
|
||||
PGDATABASE=main
|
||||
PGPASSWORD=db
|
||||
PGUSER=db
|
||||
# POSTGRES_* variables are used to create the superuser when docker container is created
|
||||
POSTGRES_DB=main
|
||||
POSTGRES_PASSWORD=db
|
||||
POSTGRES_USER=db
|
||||
3
docker-dev/.env-web
Normal file
3
docker-dev/.env-web
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
ALLOWED_HOSTS=127.0.0.1,localhost
|
||||
DATABASE_URL=postgresql://db:db@db/main
|
||||
DJANGO_SETTINGS_MODULE=settings
|
||||
26
docker-dev/Dockerfile
Normal file
26
docker-dev/Dockerfile
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
FROM python:3.11.8-bookworm AS aemo-fr
|
||||
|
||||
USER root
|
||||
|
||||
RUN mkdir -p /src
|
||||
WORKDIR /src
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
poppler-utils \
|
||||
libreoffice-writer \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY requirements.txt /usr/local/pip-requirements/
|
||||
RUN pip3 install \
|
||||
--quiet \
|
||||
--no-binary :none: \
|
||||
-r /usr/local/pip-requirements/requirements.txt
|
||||
|
||||
|
||||
FROM aemo-fr AS aemo-fr-dev
|
||||
|
||||
COPY requirements_dev.txt /usr/local/pip-requirements/
|
||||
RUN pip3 install \
|
||||
--quiet \
|
||||
--no-binary :none: \
|
||||
-r /usr/local/pip-requirements/requirements_dev.txt
|
||||
76
docker-dev/fabfile.py
vendored
Normal file
76
docker-dev/fabfile.py
vendored
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
import getpass
|
||||
from fabric import task
|
||||
from invoke import Context
|
||||
|
||||
DEV_COMPOSE_CMD = "docker-compose exec -T {container} /bin/bash -c '{command}'"
|
||||
|
||||
ENV_NAME = "prod"
|
||||
REMOTE_DB_NAME = "aemo_fr"
|
||||
|
||||
|
||||
@task
|
||||
def download_remote_data(conn):
|
||||
"""
|
||||
Dump remote (production) data, download it and sync media files
|
||||
|
||||
Don't forget to set host in command line `fab -H <HOST> download-remote-data`
|
||||
"""
|
||||
local = Context()
|
||||
|
||||
conn.config["sudo"]["password"] = getpass.getpass(
|
||||
"Enter the sudo password (on the server):"
|
||||
)
|
||||
|
||||
local.run('echo "Dump DB: Start"')
|
||||
conn.run(f"touch {REMOTE_DB_NAME}.backup && chmod o+rw {REMOTE_DB_NAME}.backup")
|
||||
conn.sudo(
|
||||
f'pg_dump --no-owner -Fc -b -f "{REMOTE_DB_NAME}.backup" {REMOTE_DB_NAME}',
|
||||
user="postgres",
|
||||
)
|
||||
local.run('echo "Dump DB: End"')
|
||||
|
||||
local.run('echo "Download DB: Start"')
|
||||
conn.get(f"{REMOTE_DB_NAME}.backup", f"./data/{ENV_NAME}/")
|
||||
local.run('echo "Download DB: End"')
|
||||
|
||||
|
||||
@task
|
||||
def import_db_in_dev(conn):
|
||||
local = Context()
|
||||
|
||||
local.run('echo "Import DB in dev: Start"')
|
||||
local.run(
|
||||
DEV_COMPOSE_CMD.format(
|
||||
container="db",
|
||||
command=(
|
||||
"dropdb -U ${POSTGRES_USER} --if-exists --force ${POSTGRES_DB} && "
|
||||
"createdb -U ${POSTGRES_USER} -O ${POSTGRES_USER} ${POSTGRES_DB}"
|
||||
),
|
||||
)
|
||||
)
|
||||
local.run(
|
||||
DEV_COMPOSE_CMD.format(
|
||||
container="db",
|
||||
command=f'pg_restore -U ${{POSTGRES_USER}} -d ${{POSTGRES_DB}} --no-owner "/data/{ENV_NAME}/{REMOTE_DB_NAME}.backup"',
|
||||
)
|
||||
)
|
||||
local.run('echo "Import DB in dev: End\n\n"')
|
||||
|
||||
|
||||
@task
|
||||
def create_admin_in_dev(conn):
|
||||
local = Context()
|
||||
|
||||
local.run('echo "Create superuser: Start"')
|
||||
local.run(
|
||||
DEV_COMPOSE_CMD.format(
|
||||
container="web",
|
||||
command=(
|
||||
"DJANGO_SUPERUSER_USERNAME=admin "
|
||||
"DJANGO_SUPERUSER_PASSWORD=admin "
|
||||
"DJANGO_SUPERUSER_EMAIL=admin@dev.dev "
|
||||
"python3 ./manage.py createsuperuser --no-input"
|
||||
),
|
||||
)
|
||||
)
|
||||
local.run('echo "Create superuser: End\n\n"')
|
||||
Loading…
Add table
Add a link
Reference in a new issue