docker-compose.yml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. # expose:
  20. # - 5432
  21. ports:
  22. - "${EVALS_DB_PORT:-5432}:5432"
  23. volumes:
  24. - ./.docker/postgres:/var/lib/postgresql/data
  25. - ./.docker/scripts/postgres:/docker-entrypoint-initdb.d
  26. environment:
  27. - POSTGRES_USER=postgres
  28. - POSTGRES_PASSWORD=password
  29. - POSTGRES_DATABASES=evals_development,evals_test
  30. healthcheck:
  31. test: ["CMD-SHELL", "pg_isready -U postgres -d evals_development"]
  32. interval: 5s
  33. timeout: 5s
  34. retries: 5
  35. start_period: 30s
  36. profiles:
  37. - server
  38. redis:
  39. container_name: evals-redis
  40. image: redis:7-alpine
  41. # expose:
  42. # - 6379
  43. ports:
  44. - "${EVALS_REDIS_PORT:-6379}:6379"
  45. volumes:
  46. - ./.docker/redis:/data
  47. command: redis-server --appendonly yes
  48. profiles:
  49. - server
  50. web:
  51. container_name: evals-web
  52. build:
  53. context: ../../
  54. dockerfile: packages/evals/Dockerfile.web
  55. ports:
  56. - "${EVALS_WEB_PORT:-3446}:3000"
  57. environment:
  58. - HOST_EXECUTION_METHOD=docker
  59. volumes:
  60. - /var/run/docker.sock:/var/run/docker.sock
  61. depends_on:
  62. db:
  63. condition: service_healthy
  64. profiles:
  65. - server
  66. runner:
  67. container_name: evals-runner
  68. build:
  69. context: ../../
  70. dockerfile: packages/evals/Dockerfile.runner
  71. environment:
  72. - HOST_EXECUTION_METHOD=docker
  73. volumes:
  74. - /var/run/docker.sock:/var/run/docker.sock
  75. - /tmp/evals:/var/log/evals
  76. stdin_open: true
  77. tty: true
  78. profiles:
  79. - runner
  80. networks:
  81. default:
  82. name: evals_default
  83. driver: bridge