Skip to content

Commit c9537ab

Browse files
committed
feat: update docker services and add example.env
* Refactor docker-services.yml to use variables for PostgreSQL credentials and other environment variables. * Introduce example.env for local Docker Compose setup with necessary configurations.
1 parent 2bfc76e commit c9537ab

2 files changed

Lines changed: 49 additions & 11 deletions

File tree

{{cookiecutter.project_shortname}}/docker-services.yml

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
{%- set postgres_user = "${POSTGRES_USER:-" ~ cookiecutter.project_shortname ~ "}" -%}
2+
{%- set postgres_password = "${POSTGRES_PASSWORD:-" ~ cookiecutter.project_shortname ~ "}" -%}
3+
{%- set postgres_db = "${POSTGRES_DB:-" ~ cookiecutter.project_shortname ~ "}" -%}
14
services:
25
app:
36
build:
47
context: ./
58
args:
69
- ENVIRONMENT=DEV
7-
- WEBPACKEXT_NPM_PKG_CLS=${WEBPACKEXT_NPM_PKG_CLS:-pynpm:PNPMPackage}
10+
- INVENIO_WEBPACKEXT_NPM_PKG_CLS=${INVENIO_WEBPACKEXT_NPM_PKG_CLS:-pynpm:PNPMPackage}
811
image: {{cookiecutter.project_shortname}}
912
restart: "unless-stopped"
1013
environment:
@@ -16,10 +19,14 @@ services:
1619
- "INVENIO_CELERY_RESULT_BACKEND=redis://cache:6379/2"
1720
- "INVENIO_COMMUNITIES_IDENTITIES_CACHE_REDIS_URL=redis://cache:6379/4"
1821
- "INVENIO_SEARCH_HOSTS=['search:9200']"
19-
- "INVENIO_SECRET_KEY=CHANGE_ME"
20-
- "INVENIO_SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://{{cookiecutter.project_shortname}}:{{cookiecutter.project_shortname}}@db/{{cookiecutter.project_shortname}}"
22+
- "INVENIO_SECRET_KEY=${INVENIO_SECRET_KEY:-CHANGE_ME}"
23+
- "INVENIO_SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://{{ postgres_user }}:{{ postgres_password }}@db/{{ postgres_db }}"
2124
- "INVENIO_PROXYFIX_CONFIG={'x_for': 1, 'x_proto': 1}"
2225
- "INVENIO_RATELIMIT_STORAGE_URL=redis://cache:6379/3"
26+
{%- if cookiecutter.file_storage == 'S3'%}
27+
- "INVENIO_S3_ACCESS_KEY_ID=${MINIO_ROOT_USER:-CHANGE_ME}"
28+
- "INVENIO_S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD:-CHANGE_ME}"
29+
{%- endif %}
2330
frontend:
2431
build: ./docker/nginx/
2532
image: {{cookiecutter.project_shortname}}-frontend
@@ -37,9 +44,9 @@ services:
3744
image: postgres:17.10
3845
restart: "unless-stopped"
3946
environment:
40-
- "POSTGRES_USER={{cookiecutter.project_shortname}}"
41-
- "POSTGRES_PASSWORD={{cookiecutter.project_shortname}}"
42-
- "POSTGRES_DB={{cookiecutter.project_shortname}}"
47+
- "POSTGRES_USER={{ postgres_user }}"
48+
- "POSTGRES_PASSWORD={{ postgres_password }}"
49+
- "POSTGRES_DB={{ postgres_db }}"
4350
ports:
4451
- "${DOCKER_SERVICES_IP_BIND:-127.0.0.1}:5432:5432"
4552
volumes:
@@ -50,8 +57,8 @@ services:
5057
ports:
5158
- "${DOCKER_SERVICES_IP_BIND:-127.0.0.1}:5050:80"
5259
environment:
53-
PGADMIN_DEFAULT_EMAIL: "{{cookiecutter.author_email}}"
54-
PGADMIN_DEFAULT_PASSWORD: "{{cookiecutter.project_shortname}}"
60+
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-{{cookiecutter.author_email}}}
61+
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-{{cookiecutter.project_shortname}}}
5562
volumes:
5663
- ./docker/pgadmin/servers.json:/pgadmin4/servers.json
5764
# note: RabbitMQ uses the hostname to build the Mnesia data directory path (cf. https://www.rabbitmq.com/docs/configure)
@@ -88,7 +95,7 @@ services:
8895
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
8996
# Change the initial admin password according to the OpenSearch documentation:
9097
# https://docs.opensearch.org/latest/security/configuration/demo-configuration/#setting-up-a-custom-admin-password
91-
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=CHANGE_me_0!"
98+
- "OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD:-CHANGE_me_0!}"
9299
- "DISABLE_INSTALL_DEMO_CONFIG=true"
93100
- "DISABLE_SECURITY_PLUGIN=true"
94101
- "discovery.type=single-node"
@@ -123,8 +130,8 @@ services:
123130
- "${DOCKER_SERVICES_IP_BIND:-127.0.0.1}:9000:9000"
124131
- "${DOCKER_SERVICES_IP_BIND:-127.0.0.1}:9001:9001"
125132
environment:
126-
MINIO_ROOT_USER: CHANGE_ME
127-
MINIO_ROOT_PASSWORD: CHANGE_ME
133+
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-CHANGE_ME}
134+
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-CHANGE_ME}
128135
volumes:
129136
- s3_data:/data
130137
command: server /data --console-address :9001
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Example local Docker Compose environment.
2+
#
3+
# Copy this file to .env and adjust values as needed. Docker Compose reads
4+
# .env automatically for variable interpolation.
5+
6+
# Bind exposed service ports to localhost by default.
7+
DOCKER_SERVICES_IP_BIND=127.0.0.1
8+
9+
# Build-time package class used by Invenio Webpack.
10+
INVENIO_WEBPACKEXT_NPM_PKG_CLS=pynpm:PNPMPackage
11+
12+
# Secret key for local development. Change this before production use.
13+
INVENIO_SECRET_KEY=CHANGE_ME
14+
15+
# PostgreSQL credentials for the local development service.
16+
POSTGRES_USER={{cookiecutter.project_shortname}}
17+
POSTGRES_PASSWORD={{cookiecutter.project_shortname}}
18+
POSTGRES_DB={{cookiecutter.project_shortname}}
19+
20+
# pgAdmin login for the local development service.
21+
PGADMIN_DEFAULT_EMAIL={{cookiecutter.author_email}}
22+
PGADMIN_DEFAULT_PASSWORD={{cookiecutter.project_shortname}}
23+
24+
# Initial OpenSearch admin password for the development container.
25+
OPENSEARCH_INITIAL_ADMIN_PASSWORD=CHANGE_me_0!
26+
27+
{%- if cookiecutter.file_storage == 'S3'%}
28+
# MinIO credentials for the local S3-compatible development service.
29+
MINIO_ROOT_USER=CHANGE_ME
30+
MINIO_ROOT_PASSWORD=CHANGE_ME
31+
{%- endif %}

0 commit comments

Comments
 (0)