docker-compose.yml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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}:3446"
  53. environment:
  54. - HOST_EXECUTION_METHOD=docker
  55. - PRODUCTION_DATABASE_URL
  56. volumes:
  57. - /var/run/docker.sock:/var/run/docker.sock
  58. # Mount log files so web can access task logs
  59. - /tmp/evals:/tmp/evals:ro
  60. depends_on:
  61. db:
  62. condition: service_healthy
  63. profiles:
  64. - server
  65. runner:
  66. container_name: evals-runner
  67. build:
  68. context: ../../
  69. dockerfile: packages/evals/Dockerfile.runner
  70. environment:
  71. - HOST_EXECUTION_METHOD=docker
  72. volumes:
  73. - /var/run/docker.sock:/var/run/docker.sock
  74. - /tmp/evals:/var/log/evals
  75. stdin_open: true
  76. tty: true
  77. profiles:
  78. - runner
  79. networks:
  80. default:
  81. name: evals_default
  82. driver: bridge