@@ -2,15 +2,15 @@ services:
22 postgres :
33 image : postgres:16
44 environment :
5- POSTGRES_DB : factoryvision
6- POSTGRES_USER : factoryvision
7- POSTGRES_PASSWORD : factoryvision
5+ POSTGRES_DB : ${POSTGRES_DB:- factoryvision}
6+ POSTGRES_USER : ${POSTGRES_USER:- factoryvision}
7+ POSTGRES_PASSWORD : ${POSTGRES_PASSWORD:- factoryvision}
88 ports :
99 - " 5432:5432"
1010 volumes :
1111 - postgres_data:/var/lib/postgresql/data
1212 healthcheck :
13- test : ["CMD-SHELL", "pg_isready -U factoryvision -d factoryvision"]
13+ test : ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER:- factoryvision} -d $${POSTGRES_DB:- factoryvision} "]
1414 interval : 5s
1515 timeout : 5s
1616 retries : 10
@@ -20,8 +20,12 @@ services:
2020 context : .
2121 dockerfile : Dockerfile
2222 environment :
23- FACTORYVISION_DATABASE_URL : postgresql+psycopg://factoryvision:factoryvision@postgres:5432/factoryvision
24- FACTORYVISION_ONNX_MODEL : /app/artifacts/models/factoryvision-segmentation.onnx
23+ FACTORYVISION_DATABASE_URL : ${FACTORYVISION_DATABASE_URL:-postgresql+psycopg://factoryvision:factoryvision@postgres:5432/factoryvision}
24+ FACTORYVISION_ONNX_MODEL : ${FACTORYVISION_ONNX_MODEL:-/app/artifacts/models/factoryvision-segmentation.onnx}
25+ FACTORYVISION_MODEL_NAME : ${FACTORYVISION_MODEL_NAME:-factoryvision-segmentation}
26+ FACTORYVISION_MODEL_ALIAS : ${FACTORYVISION_MODEL_ALIAS:-candidate}
27+ FACTORYVISION_THRESHOLD : ${FACTORYVISION_THRESHOLD:-0.5}
28+ FACTORYVISION_MAX_UPLOAD_BYTES : ${FACTORYVISION_MAX_UPLOAD_BYTES:-10000000}
2529 ports :
2630 - " 8000:8000"
2731 volumes :
@@ -38,13 +42,15 @@ services:
3842 postgres-init :
3943 image : postgres:16
4044 environment :
41- PGPASSWORD : factoryvision
45+ PGPASSWORD : ${POSTGRES_PASSWORD:-factoryvision}
46+ PGUSER : ${POSTGRES_USER:-factoryvision}
47+ PGDATABASE : ${POSTGRES_DB:-factoryvision}
4248 entrypoint : ["/bin/sh", "-c"]
4349 command :
4450 - >-
45- until pg_isready -h postgres -U factoryvision -d factoryvision; do sleep 1; done;
46- psql -h postgres -U factoryvision -d postgres -tAc "SELECT 1 FROM pg_database WHERE datname='mlflow'" | grep -q 1 ||
47- psql -h postgres -U factoryvision -d postgres -c "CREATE DATABASE mlflow"
51+ until pg_isready -h postgres -U $${POSTGRES_USER:- factoryvision} -d $${POSTGRES_DB:- factoryvision} ; do sleep 1; done;
52+ psql -h postgres -U $${POSTGRES_USER:- factoryvision} -d postgres -tAc "SELECT 1 FROM pg_database WHERE datname='mlflow'" | grep -q 1 ||
53+ psql -h postgres -U $${POSTGRES_USER:- factoryvision} -d postgres -c "CREATE DATABASE mlflow"
4854 depends_on :
4955 postgres :
5056 condition : service_healthy
@@ -55,16 +61,17 @@ services:
5561 dockerfile : docker/Dockerfile.airflow
5662 environment : &airflow-environment
5763 AIRFLOW__CORE__EXECUTOR : LocalExecutor
58- AIRFLOW__DATABASE__SQL_ALCHEMY_CONN : postgresql+psycopg2://factoryvision:factoryvision@postgres:5432/factoryvision
64+ AIRFLOW__DATABASE__SQL_ALCHEMY_CONN : ${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN:- postgresql+psycopg2://factoryvision:factoryvision@postgres:5432/factoryvision}
5965 AIRFLOW__CORE__LOAD_EXAMPLES : " false"
6066 AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION : " true"
6167 AIRFLOW__CORE__AUTH_MANAGER : airflow.api_fastapi.auth.managers.simple.simple_auth_manager.SimpleAuthManager
62- AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_USERS : airflow:admin
63- AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_PASSWORDS_FILE : /opt/airflow/simple_auth_manager_passwords.json
64- FACTORYVISION_DATABASE_URL : postgresql+psycopg://factoryvision:factoryvision@postgres:5432/factoryvision
65- FACTORYVISION_ONNX_MODEL : /app/artifacts/models/factoryvision-segmentation.onnx
66- FACTORYVISION_BATCH_IMAGE_DIR : /app/data/batch/incoming
67- FACTORYVISION_BATCH_ARTIFACT_DIR : /app/artifacts/batch
68+ AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_USERS : ${AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_USERS:-airflow:admin}
69+ AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_PASSWORDS_FILE : ${AIRFLOW__CORE__SIMPLE_AUTH_MANAGER_PASSWORDS_FILE:-/opt/airflow/simple_auth_manager_passwords.json}
70+ FACTORYVISION_DATABASE_URL : ${FACTORYVISION_DATABASE_URL:-postgresql+psycopg://factoryvision:factoryvision@postgres:5432/factoryvision}
71+ FACTORYVISION_ONNX_MODEL : ${FACTORYVISION_ONNX_MODEL:-/app/artifacts/models/factoryvision-segmentation.onnx}
72+ FACTORYVISION_BATCH_IMAGE_DIR : ${FACTORYVISION_BATCH_IMAGE_DIR:-/app/data/batch/incoming}
73+ FACTORYVISION_BATCH_ARTIFACT_DIR : ${FACTORYVISION_BATCH_ARTIFACT_DIR:-/app/artifacts/batch}
74+ FACTORYVISION_BATCH_MAX_IMAGES : ${FACTORYVISION_BATCH_MAX_IMAGES:-}
6875 volumes : &airflow-volumes
6976 - airflow_home:/opt/airflow
7077 - ./airflow/dags:/opt/airflow/dags
@@ -125,7 +132,7 @@ services:
125132 - --port
126133 - " 5000"
127134 - --backend-store-uri
128- - postgresql://factoryvision:factoryvision@postgres:5432/mlflow
135+ - ${MLFLOW_BACKEND_STORE_URI:- postgresql://factoryvision:factoryvision@postgres:5432/mlflow}
129136 - --artifacts-destination
130137 - /mlartifacts
131138 - --serve-artifacts
@@ -160,8 +167,8 @@ services:
160167 grafana :
161168 image : grafana/grafana:11.1.0
162169 environment :
163- GF_SECURITY_ADMIN_USER : admin
164- GF_SECURITY_ADMIN_PASSWORD : factoryvision
170+ GF_SECURITY_ADMIN_USER : ${GRAFANA_ADMIN_USER:- admin}
171+ GF_SECURITY_ADMIN_PASSWORD : ${GRAFANA_ADMIN_PASSWORD:- factoryvision}
165172 GF_USERS_ALLOW_SIGN_UP : " false"
166173 ports :
167174 - " 3000:3000"
0 commit comments