-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker.tf
More file actions
75 lines (62 loc) · 1.67 KB
/
docker.tf
File metadata and controls
75 lines (62 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
resource "null_resource" "template_dockerfile" {
triggers = {
always_run = timestamp()
}
provisioner "local-exec" {
command = <<EOF
bun ${path.module}/template-dockerfile.js ${var.code_path} ${var.package_json_path} ${var.bun_lock_path} ${var.lambda_function_handler} ${var.image_name} ${var.compile_code ? "true" : "false"}
EOF
}
}
resource "null_resource" "docker_login" {
depends_on = [
null_resource.template_dockerfile
]
triggers = {
always_run = timestamp()
}
provisioner "local-exec" {
command = <<EOF
aws ${var.aws_profile != null ? "--profile ${var.aws_profile}" : ""} ecr get-login-password --region ${var.aws_region} | docker login --username AWS --password-stdin ${aws_ecr_repository.ecr.repository_url}
EOF
}
}
resource "null_resource" "docker_build" {
depends_on = [
null_resource.docker_login
]
triggers = {
always_run = timestamp()
}
provisioner "local-exec" {
command = <<EOF
docker build -t ${var.image_name}:${var.image_tag} -f ${path.module}/${var.image_name}.Dockerfile ..
EOF
}
}
resource "null_resource" "docker_tag" {
depends_on = [
null_resource.docker_build
]
triggers = {
always_run = timestamp()
}
provisioner "local-exec" {
command = <<EOF
docker tag ${var.image_name}:${var.image_tag} ${aws_ecr_repository.ecr.repository_url}:${var.image_tag}
EOF
}
}
resource "null_resource" "docker_push" {
depends_on = [
null_resource.docker_tag
]
triggers = {
always_run = timestamp()
}
provisioner "local-exec" {
command = <<EOF
docker push ${aws_ecr_repository.ecr.repository_url}:${var.image_tag}
EOF
}
}