-
Notifications
You must be signed in to change notification settings - Fork 9
/
docker-compose.yml
63 lines (58 loc) · 2.29 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
version: "3.4"
services:
# Luigi runs as a service and must have jobs submitted to it
# (`scripts/run.sh`)
luigi:
image: "nsidc/qgreenland:${QGREENLAND_VERSION:-latest}"
container_name: "luigi"
volumes:
# Code
- "./:/luigi/tasks/qgreenland:ro"
# Luigi artifacts
- "./luigi/conf:/etc/luigi:ro"
- "./luigi/state:/luigi/state:rw"
# Input (private) storage
- "${QGREENLAND_DATA_PRIVATE_ARCHIVE:-./data/private-archive}:/private-archive:ro"
# Read-write storage
# HACK: Should use ${QGREENLAND_DATA_WORKING_STORAGE}, but we were having
# issues with our storage appliance some time ago, started using two
# working storage locations temporarily, and we haven't re-tested yet.
- "${QGREENLAND_DATA_WORKING_STORAGE_TMP:-./data/working-storage}:/working-storage:rw"
environment:
- "QGREENLAND_EARTHDATA_USERNAME=${QGREENLAND_EARTHDATA_USERNAME:?QGREENLAND_EARTHDATA_USERNAME must be set}"
- "QGREENLAND_EARTHDATA_PASSWORD=${QGREENLAND_EARTHDATA_PASSWORD:?QGREENLAND_EARTHDATA_PASSWORD must be set}"
- "QGREENLAND_ENVIRONMENT"
- "QGREENLAND_ENV_MANAGER=micromamba"
# Configure Luigi to find its config in luigi/conf/luigi.toml
- "LUIGI_CONFIG_PARSER=toml"
# Set `export PYTHONBREAKPOINT=ipdb.set_trace` to use `ipdb` by default
# instead of `pdb`.
- "PYTHONBREAKPOINT"
# Needed to properly initialize QGIS Python library without a display
- "QT_QPA_PLATFORM=minimal"
ports:
- "8082:8082"
logging:
options:
max-size: "20m"
max-file: "5"
restart: "on-failure"
# QGreenland hosting
webserver:
image: "nsidc/nginx:local"
build: "./nginx"
container_name: "webserver"
volumes:
- "./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro"
- "./nginx/nginx.conf:/etc/nginx/nginx.conf:ro"
- "${QGREENLAND_DATA_WORKING_STORAGE:-./data/working-storage}/release-layers:/usr/share/nginx/html/layers:ro"
- "${QGREENLAND_DATA_WORKING_STORAGE:-./data/working-storage}/release-packages:/usr/share/nginx/html/packages:ro"
- "${QGREENLAND_DATA_LOGS:-./data/logs}:/logs:rw"
ports:
- "80:80"
- "443:443"
logging:
options:
max-size: "20m"
max-file: "5"
restart: "on-failure"