Christmas cookie ranking site
1resource "random_password" "postgres_password" {
2 length = 32
3 special = false
4}
5
6resource "docker_image" "postgres" {
7 name = "postgres:17.4"
8}
9
10resource "docker_volume" "postgres_data" {
11 name = "${var.name}-pgdata"
12
13 lifecycle {
14 prevent_destroy = true
15 }
16}
17
18resource "docker_container" "postgres" {
19 image = docker_image.postgres.image_id
20 name = "${var.name}-postgres"
21 wait = true
22 restart = var.restart
23
24 volumes {
25 container_path = "/var/lib/postgresql/data"
26 volume_name = docker_volume.postgres_data.name
27 read_only = false
28 }
29
30 network_mode = "bridge"
31
32 networks_advanced {
33 name = docker_network.internal.name
34 aliases = ["postgres"]
35 }
36
37 healthcheck {
38 test = ["CMD-SHELL", "pg_isready -U ${local.database_user}"]
39 interval = "2s"
40 timeout = "5s"
41 retries = 5
42 }
43
44 env = [
45 "POSTGRES_USER=${local.database_user}",
46 "POSTGRES_DB=${local.database_name}",
47 "POSTGRES_PASSWORD=${random_password.postgres_password.result}",
48 ]
49}