Skip to content

Commit

Permalink
#622 Add v1 docker-compose and fix CMD-SHELL
Browse files Browse the repository at this point in the history
  • Loading branch information
tariqksoliman committed Jan 29, 2025
1 parent caa7e1a commit 58a3ce4
Show file tree
Hide file tree
Showing 2 changed files with 179 additions and 1 deletion.
9 changes: 8 additions & 1 deletion docker-compose.sample.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,14 @@ services:
- 8888:8888
healthcheck:
# Use https if using HTTPS= env
test: ["curl", "-XGET", "-k", "http://mmgis:8888/API/utils/healthcheck"]
test:
[
"CMD-SHELL",
"curl",
"-XGET",
"-k",
"http://mmgis:8888/API/utils/healthcheck",
]
interval: 10s
retries: 10
start_period: 10s
Expand Down
171 changes: 171 additions & 0 deletions docker-compose.v1-sample.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
services:
mmgis:
build: .
depends_on:
- db
env_file: .env
ports:
- 8888:8888
restart: on-failure
volumes:
- ./Missions:/usr/src/app/Missions
- ./ssl:/usr/src/app/ssl

stac-fastapi:
image: ghcr.io/stac-utils/stac-fastapi-pgstac:3.0.0
ports:
- 8881
environment:
# Postgres connection
- POSTGRES_USER=username
- POSTGRES_PASS=password
- POSTGRES_DBNAME=mmgis-stac
- POSTGRES_HOST_READER=db
- POSTGRES_HOST_WRITER=db
- POSTGRES_PORT=5432
- DB_MIN_CONN_SIZE=1
- DB_MAX_CONN_SIZE=1
depends_on:
- db
command: bash -c "bash /tmp/scripts/wait-for-it.sh -t 120 -h db -p 5432 && uvicorn stac_fastapi.pgstac.app:app --host 0.0.0.0 --port 8881"
volumes:
- ./adjacent-servers/docker-scripts:/tmp/scripts
- ./Missions:/Missions

tipg:
image: ghcr.io/developmentseed/tipg:0.7.2
ports:
- 8882
environment:
# Application
- HOST=0.0.0.0
- PORT=8882
# https://github.com/tiangolo/uvicorn-gunicorn-docker#web_concurrency
- WEB_CONCURRENCY=10
# https://github.com/tiangolo/uvicorn-gunicorn-docker#workers_per_core
# - WORKERS_PER_CORE=1
# https://github.com/tiangolo/uvicorn-gunicorn-docker#max_workers
# - MAX_WORKERS=10
# Postgres connection
- POSTGRES_USER=username
- POSTGRES_PASS=password
- POSTGRES_DBNAME=mmgis-stac
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
- DB_MIN_CONN_SIZE=1
- DB_MAX_CONN_SIZE=10
command: bash -c "bash /tmp/scripts/wait-for-it.sh -t 120 -h db -p 5432 && /start.sh"
depends_on:
- db
volumes:
- ./adjacent-servers/docker-scripts:/tmp/scripts
- ./Missions:/Missions

titiler:
# TODO: remove once https://github.com/rasterio/rasterio-wheels/issues/69 is resolved
# See https://github.com/developmentseed/titiler/discussions/387
platform: linux/amd64
image: ghcr.io/developmentseed/titiler-uvicorn:0.18.6
ports:
- 8883
environment:
# Application
- HOST=0.0.0.0
- PORT=8883
# Uvicorn
# http://www.uvicorn.org/settings/#production
- WEB_CONCURRENCY=1
# GDAL config
- CPL_TMPDIR=/tmp
- GDAL_CACHEMAX=75%
- GDAL_INGESTED_BYTES_AT_OPEN=32768
- GDAL_DISABLE_READDIR_ON_OPEN=EMPTY_DIR
- GDAL_HTTP_MERGE_CONSECUTIVE_RANGES=YES
- GDAL_HTTP_MULTIPLEX=YES
- GDAL_HTTP_VERSION=2
- PYTHONWARNINGS=ignore
- VSI_CACHE=TRUE
- VSI_CACHE_SIZE=536870912
# GDAL VSI Config
# https://gdal.org/user/virtual_file_systems.html#vsis3-aws-s3-files
# https://gdal.org/user/virtual_file_systems.html#vsigs-google-cloud-storage-files
# https://gdal.org/user/virtual_file_systems.html#vsiaz-microsoft-azure-blob-files
# - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
# - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
# TiTiler config
# - TITILER_API_DISABLE_STAC=TRUE/FALSE
# - TITILER_API_DISABLE_MOSAIC=TRUE/FALSE
# - TITILER_API_DISABLE_COG=TRUE/FALSE
# - TITILER_API_CORS_ORIGIN=url.io,url.xyz
# - TITILER_API_CACHECONTROL=public, max-age=3600
# - TITILER_API_DEBUG=TRUE/FALSE
# - MOSAIC_CONCURRENCY= # will default to `RIO_TILER_MAX_THREADS`
# rio-tiler config
# - RIO_TILER_MAX_THREADS=
volumes:
- ./Missions:/Missions

titiler-pgstac:
# At the time of writing, rasterio and psycopg wheels are not available for arm64 arch
# so we force the image to be built with linux/amd64
platform: linux/amd64
image: ghcr.io/stac-utils/titiler-pgstac:1.4.0
ports:
- 8884
environment:
# Application
- HOST=0.0.0.0
- PORT=8884
# https://github.com/tiangolo/uvicorn-gunicorn-docker#web_concurrency
- WEB_CONCURRENCY=1
# https://github.com/tiangolo/uvicorn-gunicorn-docker#workers_per_core
- WORKERS_PER_CORE=1
# https://github.com/tiangolo/uvicorn-gunicorn-docker#max_workers
- MAX_WORKERS=10
# Postgres connection
- POSTGRES_USER=username
- POSTGRES_PASS=password
- POSTGRES_DBNAME=mmgis-stac
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
- DB_MIN_CONN_SIZE=1
- DB_MAX_CONN_SIZE=10
# - DB_MAX_QUERIES=10
# - DB_MAX_IDLE=10
# GDAL Config
- CPL_TMPDIR=/tmp
- GDAL_CACHEMAX=75%
- GDAL_INGESTED_BYTES_AT_OPEN=32768
- GDAL_DISABLE_READDIR_ON_OPEN=EMPTY_DIR
- GDAL_HTTP_MERGE_CONSECUTIVE_RANGES=YES
- GDAL_HTTP_MULTIPLEX=YES
- GDAL_HTTP_VERSION=2
- VSI_CACHE=TRUE
- VSI_CACHE_SIZE=536870912
# TiTiler Config
- MOSAIC_CONCURRENCY=1
# AWS S3 endpoint config
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
# TiTiler pgSTAC
- TITILER_PGSTAC_SEARCH_EXITWHENFULL=FALSE
- TITILER_PGSTAC_SEARCH_SKIPCOVERED=FALSE
depends_on:
- db
command: bash -c "bash /tmp/scripts/wait-for-it.sh -t 120 -h db -p 5432 && /start.sh"
volumes:
- ./Missions:/Missions
- ./adjacent-servers/docker-scripts:/tmp/scripts

db:
image: postgis/postgis:16-3.4-alpine
env_file: .env
environment:
- POSTGRES_PASSWORD_OFF=Rename to 'POSTGRES_PASSWORD' and replace this with an initial root password for the DB
ports:
- 5432
restart: on-failure
volumes:
- mmgis-db:/var/lib/postgresql/data
volumes:
mmgis-db:

0 comments on commit 58a3ce4

Please sign in to comment.