-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
136 lines (122 loc) · 4.18 KB
/
docker-compose.yaml
File metadata and controls
136 lines (122 loc) · 4.18 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
services:
minio:
image: "mirror.gcr.io/minio/minio"
container_name: minio
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: "minioaccess"
MINIO_ROOT_PASSWORD: "miniosecret"
tmpfs:
- /minio-data:mode=1777
command: server /minio-data --console-address ":9001"
minio-setup:
image: "mirror.gcr.io/minio/mc"
depends_on:
- minio
entrypoint: |
sh -c '
set -e
echo "Waiting for MinIO to be ready..."
until mc alias set local http://minio:9000 "minioaccess" "miniosecret"; do
sleep 2
done
echo "MinIO is ready! Creating bucket and user..."
mc mb --ignore-existing local/metricsutilitys3
mc admin user add local "mynewuser" "mysecretpassword"
mc admin policy attach local readwrite --user="mynewuser"
mc admin accesskey create local "mynewuser" --access-key "myuseraccesskey" --secret-key "myusersecretkey"
'
postgres:
image: "mirror.gcr.io/postgres"
container_name: postgres
environment:
POSTGRES_DB: "awx"
POSTGRES_USER: "myuser"
POSTGRES_PASSWORD: "mypassword"
ports:
- "5432:5432"
volumes:
- ./roles.sql:/docker-entrypoint-initdb.d/init-0-roles.sql
- ./latest.sql:/docker-entrypoint-initdb.d/init-1-schema.sql
- ./functions.sql:/docker-entrypoint-initdb.d/init-2-functions.sql
- ./conf_setting.sql:/docker-entrypoint-initdb.d/init-3-conf_setting.sql
- ./main_hostmetric.sql:/docker-entrypoint-initdb.d/init-4-main_hostmetric.sql
- ./main_instance.sql:/docker-entrypoint-initdb.d/init-5-main_instance.sql
- ./main_jobhostsummary.sql:/docker-entrypoint-initdb.d/init-6-main_jobhostsummary.sql
- ./dab_feature_flags.sql:/docker-entrypoint-initdb.d/init-7-dab_feature_flags.sql
postgres-wait:
image: "mirror.gcr.io/postgres"
depends_on:
- postgres
command: |
sh -c '
echo "Waiting for PostgreSQL to be ready..."
until pg_isready -h postgres; do
sleep 2
done
'
metrics-utility:
image: "mirror.gcr.io/python"
container_name: metrics-utility
depends_on:
minio-setup:
condition: service_completed_successfully
postgres-wait:
condition: service_completed_successfully
volumes:
- ../..:/app_ro
tmpfs:
- /app:rw,exec,mode=0755,uid=1001
working_dir: /app
profiles: ["pytest"] # makes this service non-default, except when --profile=pytest
environment:
METRICS_UTILITY_BUCKET_ACCESS_KEY: "myuseraccesskey"
METRICS_UTILITY_BUCKET_ENDPOINT: "http://minio:9000"
METRICS_UTILITY_BUCKET_NAME: "metricsutilitys3"
METRICS_UTILITY_BUCKET_REGION: "us-east-1"
METRICS_UTILITY_BUCKET_SECRET_KEY: "myusersecretkey"
METRICS_UTILITY_DB_HOST: "postgres"
entrypoint: |
sh -c '
set -e
rsync -a --exclude=.git --exclude=.venv --exclude=.ruff_cache --exclude=/build --exclude=/dist /app_ro/ /app/metrics-utility/
cd /app/metrics-utility/
sed -i '/HOST/s/localhost/postgres/' mock_awx/settings/__init__.py
pip install uv
uv sync
uv run pytest -s -v
'
metrics-utility-env:
build:
context: .
args:
SRC_MOUNT: /app
image: "mirror.gcr.io/python"
container_name: metrics-utility-env
depends_on:
minio-setup:
condition: service_completed_successfully
postgres-wait:
condition: service_completed_successfully
volumes:
- ../../:/app # Mount the current local directory to /app in the container
working_dir: /app
profiles: ["env"] # makes this service non-default, except when --profile=env
environment:
METRICS_UTILITY_BUCKET_ACCESS_KEY: "myuseraccesskey"
METRICS_UTILITY_BUCKET_ENDPOINT: "http://minio:9000"
METRICS_UTILITY_BUCKET_NAME: "metricsutilitys3"
METRICS_UTILITY_BUCKET_REGION: "us-east-1"
METRICS_UTILITY_BUCKET_SECRET_KEY: "myusersecretkey"
METRICS_UTILITY_DB_HOST: "postgres"
entrypoint: |
sh -c '
set -e
ls
pip install uv
uv sync
env | grep ^METRICS | sort
tail -f /dev/null
'