2021-10-20 19:57:11 +00:00
|
|
|
version: "3"
|
|
|
|
services:
|
|
|
|
db:
|
|
|
|
container_name: db
|
2023-12-19 15:52:09 +00:00
|
|
|
build: ./db
|
2021-10-20 19:57:11 +00:00
|
|
|
restart: always
|
2024-03-07 01:04:55 +00:00
|
|
|
healthcheck:
|
|
|
|
test: ["CMD-SHELL", "pg_isready -U sn -d stackernews"]
|
|
|
|
interval: 5s
|
|
|
|
timeout: 5s
|
|
|
|
retries: 5
|
2021-10-20 19:57:11 +00:00
|
|
|
expose:
|
|
|
|
- "5432"
|
|
|
|
ports:
|
|
|
|
- "5431:5432"
|
|
|
|
env_file:
|
2024-03-06 23:38:34 +00:00
|
|
|
- ./.env.sndev
|
2023-06-13 01:22:10 +00:00
|
|
|
volumes:
|
2024-03-06 23:38:34 +00:00
|
|
|
- ./anon.sql:/docker-entrypoint-initdb.d/anon.sql
|
2023-06-13 01:22:10 +00:00
|
|
|
- db:/var/lib/postgresql/data
|
2021-10-20 19:57:11 +00:00
|
|
|
app:
|
|
|
|
container_name: app
|
|
|
|
build: ./
|
2024-03-06 23:38:34 +00:00
|
|
|
restart: always
|
2023-04-25 21:30:28 +00:00
|
|
|
healthcheck:
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
|
|
|
interval: 10s
|
|
|
|
timeout: 10s
|
|
|
|
retries: 10
|
|
|
|
start_period: 1m30s
|
2021-10-20 19:57:11 +00:00
|
|
|
depends_on:
|
2024-03-06 23:38:34 +00:00
|
|
|
db:
|
|
|
|
condition: service_healthy
|
2024-03-07 01:04:55 +00:00
|
|
|
restart: true
|
|
|
|
opensearch:
|
|
|
|
condition: service_healthy
|
|
|
|
restart: true
|
2021-10-20 19:57:11 +00:00
|
|
|
env_file:
|
2024-03-06 23:38:34 +00:00
|
|
|
- ./.env.sndev
|
|
|
|
expose:
|
|
|
|
- "3000"
|
2021-10-20 19:57:11 +00:00
|
|
|
ports:
|
|
|
|
- "3000:3000"
|
|
|
|
volumes:
|
|
|
|
- ./:/app
|
|
|
|
links:
|
2022-10-06 20:33:18 +00:00
|
|
|
- db
|
2023-09-24 23:24:04 +00:00
|
|
|
- opensearch
|
2022-10-06 20:33:18 +00:00
|
|
|
worker:
|
|
|
|
container_name: worker
|
|
|
|
build: ./worker
|
2024-03-06 23:38:34 +00:00
|
|
|
restart: always
|
2022-10-06 20:33:18 +00:00
|
|
|
depends_on:
|
2023-04-25 21:30:28 +00:00
|
|
|
db:
|
2024-03-06 23:38:34 +00:00
|
|
|
condition: service_healthy
|
2024-03-07 01:04:55 +00:00
|
|
|
restart: true
|
2023-04-25 21:30:28 +00:00
|
|
|
app:
|
|
|
|
condition: service_healthy
|
2024-03-07 01:04:55 +00:00
|
|
|
restart: true
|
2024-03-06 23:38:34 +00:00
|
|
|
opensearch:
|
|
|
|
condition: service_healthy
|
2024-03-07 01:04:55 +00:00
|
|
|
restart: true
|
2022-10-06 20:33:18 +00:00
|
|
|
env_file:
|
2024-03-06 23:38:34 +00:00
|
|
|
- ./.env.sndev
|
2022-10-06 20:33:18 +00:00
|
|
|
ports:
|
|
|
|
- "8080:8080"
|
|
|
|
volumes:
|
|
|
|
- ./:/app
|
|
|
|
links:
|
|
|
|
- db
|
2023-09-24 23:24:04 +00:00
|
|
|
- app
|
|
|
|
- opensearch
|
2022-10-06 20:33:18 +00:00
|
|
|
entrypoint: ["/bin/sh", "-c"]
|
2023-04-25 21:30:28 +00:00
|
|
|
command:
|
2024-03-06 23:38:34 +00:00
|
|
|
- npm run worker:dev
|
2023-07-13 00:10:01 +00:00
|
|
|
imgproxy:
|
|
|
|
container_name: imgproxy
|
|
|
|
image: darthsim/imgproxy:v3.18.1
|
|
|
|
healthcheck:
|
|
|
|
test: [ "CMD", "imgproxy", "health" ]
|
|
|
|
timeout: 10s
|
|
|
|
interval: 10s
|
|
|
|
retries: 3
|
|
|
|
restart: always
|
|
|
|
env_file:
|
2024-03-06 23:38:34 +00:00
|
|
|
- ./.env.sndev
|
2023-07-13 00:10:01 +00:00
|
|
|
expose:
|
|
|
|
- "8080"
|
|
|
|
ports:
|
|
|
|
- "3001:8080"
|
|
|
|
links:
|
|
|
|
- app
|
2023-09-24 23:24:04 +00:00
|
|
|
opensearch:
|
|
|
|
image: opensearchproject/opensearch:latest
|
|
|
|
container_name: opensearch
|
2024-03-06 23:38:34 +00:00
|
|
|
healthcheck:
|
|
|
|
test: ["CMD-SHELL", "curl -ku admin:admin --silent --fail localhost:9200/_cluster/health || exit 1"]
|
|
|
|
interval: 10s
|
|
|
|
timeout: 10s
|
|
|
|
retries: 10
|
|
|
|
restart: always
|
2023-09-24 23:24:04 +00:00
|
|
|
environment:
|
|
|
|
- discovery.type=single-node
|
|
|
|
- plugins.security.disabled=true
|
|
|
|
ports:
|
|
|
|
- 9200:9200 # REST API
|
|
|
|
- 9600:9600 # Performance Analyzer
|
|
|
|
volumes:
|
|
|
|
- os:/usr/share/opensearch/data
|
|
|
|
command: >
|
|
|
|
bash -c '
|
|
|
|
set -m
|
|
|
|
/usr/share/opensearch/opensearch-docker-entrypoint.sh &
|
|
|
|
until curl -sS "http://localhost:9200/_cat/health?h=status" -ku admin:admin | grep -q "green\|yellow"; do
|
|
|
|
echo "Waiting for OpenSearch to start..."
|
|
|
|
sleep 1
|
|
|
|
done
|
|
|
|
echo "OpenSearch started."
|
|
|
|
curl -X PUT "http://localhost:9200/item" -ku admin:admin
|
|
|
|
echo "OpenSearch index created."
|
|
|
|
fg
|
|
|
|
'
|
|
|
|
os-dashboard:
|
|
|
|
image: opensearchproject/opensearch-dashboards:latest
|
|
|
|
container_name: os-dashboard
|
2024-03-07 01:04:55 +00:00
|
|
|
restart: always
|
|
|
|
depends_on:
|
|
|
|
opensearch:
|
|
|
|
condition: service_healthy
|
|
|
|
restart: true
|
2023-09-24 23:24:04 +00:00
|
|
|
environment:
|
|
|
|
- opensearch.ssl.verificationMode=none
|
|
|
|
- server.ssl.enabled=false
|
|
|
|
- plugins.security.disabled=true
|
|
|
|
- DISABLE_SECURITY_DASHBOARDS_PLUGIN=true
|
|
|
|
- OPENSEARCH_HOSTS=http://opensearch:9200
|
|
|
|
ports:
|
|
|
|
- 5601:5601
|
|
|
|
expose:
|
|
|
|
- "5601"
|
|
|
|
links:
|
|
|
|
- opensearch
|
2023-06-13 01:22:10 +00:00
|
|
|
volumes:
|
2023-09-24 23:24:04 +00:00
|
|
|
db:
|
|
|
|
os:
|