docker-compose.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. # Build the web and runner images:
  2. # docker compose build web runner
  3. #
  4. # Start all "server" services (db, redis, web):
  5. # docker compose --profile server up
  6. #
  7. # Start a shell in the runner container:
  8. # docker compose run --rm runner bash
  9. #
  10. # Or using the docker cli:
  11. # docker run -it --rm --network evals_default evals-runner bash
  12. #
  13. # To enable docker execution, run:
  14. # docker run -it --rm --network evals_default -v /var/run/docker.sock:/var/run/docker.sock -e HOST_EXECUTION_METHOD=docker evals-runner bash
  15. services:
  16. db:
  17. container_name: evals-db
  18. image: postgres:15.4
  19. ports:
  20. - "${EVALS_DB_PORT:-5432}:5432"
  21. volumes:
  22. - ./.docker/postgres:/var/lib/postgresql/data
  23. - ./.docker/scripts/postgres:/docker-entrypoint-initdb.d
  24. environment:
  25. - POSTGRES_USER=postgres
  26. - POSTGRES_PASSWORD=password
  27. - POSTGRES_DATABASES=evals_development,evals_test
  28. healthcheck:
  29. test: ["CMD-SHELL", "pg_isready -U postgres -d evals_development"]
  30. interval: 5s
  31. timeout: 5s
  32. retries: 5
  33. start_period: 30s
  34. profiles:
  35. - server
  36. redis:
  37. container_name: evals-redis
  38. image: redis:7-alpine
  39. ports:
  40. - "${EVALS_REDIS_PORT:-6379}:6379"
  41. volumes:
  42. - ./.docker/redis:/data
  43. command: redis-server --appendonly yes
  44. profiles:
  45. - server
  46. web:
  47. container_name: evals-web
  48. build:
  49. context: ../../
  50. dockerfile: packages/evals/Dockerfile.web
  51. ports:
  52. - "${EVALS_WEB_PORT:-3446}:3000"
  53. environment:
  54. - HOST_EXECUTION_METHOD=docker
  55. volumes:
  56. - /var/run/docker.sock:/var/run/docker.sock
  57. depends_on:
  58. db:
  59. condition: service_healthy
  60. profiles:
  61. - server
  62. runner:
  63. container_name: evals-runner
  64. build:
  65. context: ../../
  66. dockerfile: packages/evals/Dockerfile.runner
  67. environment:
  68. - HOST_EXECUTION_METHOD=docker
  69. volumes:
  70. - /var/run/docker.sock:/var/run/docker.sock
  71. - /tmp/evals:/var/log/evals
  72. stdin_open: true
  73. tty: true
  74. profiles:
  75. - runner
  76. networks:
  77. default:
  78. name: evals_default
  79. driver: bridge