-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
88 lines (83 loc) · 2.57 KB
/
docker-compose.yml
File metadata and controls
88 lines (83 loc) · 2.57 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
secrets:
GALAXY_STORAGE_PASSWORD:
file: ./galaxy/secrets/GALAXY_STORAGE_PASSWORD
services:
galaxy:
image: galaxy/galaxy-min:24.2.2
restart: unless-stopped
group_add:
- ${DOCKER_GID}
depends_on:
galaxy-postgres:
condition: service_healthy
container_name: ${PROJECT_NAME}-galaxy
ports:
- 8080:8080
volumes:
# Persistant storage for Galaxy
- galaxy-store:/galaxy/server/
# Populate the instance
- ./galaxy/init/bootstrap.py:/galaxy/server/bootstrap.py
- ./galaxy/tools:/galaxy-tools
# Add custom configuration files
- ./galaxy/config/tool_conf.xml:/galaxy/server/config/tool_conf.xml.sample
- ./galaxy/config/job_conf.xml:/galaxy/server/config/job_conf.xml
- ./galaxy/config/galaxy.yml:/galaxy/server/config/galaxy.yml
- ./galaxy/config/datatypes_conf.xml:/galaxy/server/config/datatypes_conf.xml
- ./galaxy/config/welcome.html:/galaxy/server/static/welcome.html
# Provide docker-in-docker
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock:ro
post_start:
- command: sh -c "chown -R 101:101 /galaxy/server/tools/"
user: root
- command: sh -c "cp -r /galaxy-tools/* /galaxy/server/tools/"
networks:
- galaxy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"]
interval: 30s
timeout: 30s
retries: 5
galaxy-bootstrap:
image: galaxy/galaxy-min:24.1.3
container_name: ${PROJECT_NAME}-galaxy-bootstrap
environment:
- GALAXY_URL=http://${PROJECT_NAME}-galaxy:8080
- GALAXY_API_KEY=${GALAXY_API_KEY}
- GALAXY_ADMIN_USERNAME=${GALAXY_ADMIN_USER}
- GALAXY_ADMIN_EMAIL=${GALAXY_ADMIN_EMAIL}
- GALAXY_ADMIN_PASSWORD=${GALAXY_ADMIN_PASS}
depends_on:
galaxy:
condition: service_healthy
volumes:
- ./galaxy/init/bootstrap.py:/bootstrap.py
- ./galaxy/workflows:/galaxy-workflows
networks:
- galaxy
entrypoint: ["python"]
command: ["/bootstrap.py"]
galaxy-postgres:
container_name: ${PROJECT_NAME}-galaxy-postgres
image: postgres
restart: unless-stopped
secrets: [GALAXY_STORAGE_PASSWORD]
ports:
- 5432:5432
environment:
POSTGRES_USER: galaxy
POSTGRES_PASSWORD_FILE: /run/secrets/GALAXY_STORAGE_PASSWORD
POSTGRES_DB: galaxy
networks:
- galaxy
healthcheck:
test: ["CMD-SHELL", "pg_isready -U galaxy"]
interval: 5s
timeout: 5s
retries: 5
networks:
galaxy:
volumes:
galaxy-store:
name: galaxy-store