terra_boi 0.0.13 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +85 -156
- data/lib/generators/extensions.rb +5 -5
- data/lib/generators/terra_boi/boilerplate_generator.rb +39 -32
- data/lib/generators/terra_boi/dockerfile_generator.rb +19 -18
- data/lib/generators/terra_boi/host_initializer_generator.rb +18 -18
- data/lib/generators/terra_boi/templates/Dockerfile.erb +4 -23
- data/lib/generators/terra_boi/templates/cert/main.tf.erb +32 -0
- data/lib/generators/terra_boi/templates/cert/var.tf.erb +15 -0
- data/lib/generators/terra_boi/templates/data_storage_config.erb +7 -7
- data/lib/generators/terra_boi/templates/ecr/ecs_role.tf.erb +41 -0
- data/lib/generators/terra_boi/templates/ecr/main.tf.erb +26 -0
- data/lib/generators/terra_boi/templates/ecr/output.tf.erb +11 -0
- data/lib/generators/terra_boi/templates/ecr/var.tf.erb +15 -0
- data/lib/generators/terra_boi/templates/{data_main.erb → env/data/main.tf.erb} +2 -2
- data/lib/generators/terra_boi/templates/{data_output.erb → env/data/output.tf.erb} +1 -1
- data/lib/generators/terra_boi/templates/env/ecs_cluster/ecs_cluster.tf.erb +24 -0
- data/lib/generators/terra_boi/templates/env/head_worker/ecs.tf.erb +55 -0
- data/lib/generators/terra_boi/templates/env/web_app/ecs.tf.erb +59 -0
- data/lib/generators/terra_boi/templates/lib/scripts/push_to_ecr.sh.erb +25 -0
- data/lib/generators/terra_boi/templates/lib/scripts/update_service_pull_from_ecr.sh.erb +18 -0
- data/lib/generators/terra_boi/templates/lib/task_templates/head_worker.json.erb +61 -0
- data/lib/generators/terra_boi/templates/lib/task_templates/web_app.json.erb +58 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_cluster/main.tf.erb +12 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_cluster/var.tf.erb +20 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_web_app/ecs_role.tf.erb +7 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_web_app/load_balancer.tf.erb +92 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_web_app/main.tf.erb +134 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_web_app/output.tf.erb +11 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_web_app/var.tf.erb +63 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_worker/ecs_role.tf.erb +7 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_worker/main.tf.erb +120 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_worker/output.tf.erb +7 -0
- data/lib/generators/terra_boi/templates/lib/terraform_modules/ecs_worker/var.tf.erb +57 -0
- data/lib/generators/terra_boi/templates/state_main.erb +1 -1
- data/lib/generators/terra_boi/tf_cert_generator.rb +28 -0
- data/lib/generators/terra_boi/tf_ecr_generator.rb +28 -0
- data/lib/generators/terra_boi/tf_env_generator.rb +54 -0
- data/lib/generators/terra_boi/tf_lib_generator.rb +57 -0
- data/lib/generators/terra_boi/tf_state_generator.rb +24 -0
- data/lib/tasks/terra_boi_tasks.rake +274 -4
- data/lib/terra_boi/railtie.rb +5 -2
- data/lib/terra_boi/version.rb +1 -1
- metadata +60 -32
- data/lib/generators/terra_boi/data_generator.rb +0 -38
- data/lib/generators/terra_boi/master_worker_generator.rb +0 -54
- data/lib/generators/terra_boi/packer_generator.rb +0 -26
- data/lib/generators/terra_boi/state_generator.rb +0 -25
- data/lib/generators/terra_boi/templates/master_worker_main.erb +0 -26
- data/lib/generators/terra_boi/templates/master_worker_output.erb +0 -14
- data/lib/generators/terra_boi/templates/master_worker_start_script.erb +0 -12
- data/lib/generators/terra_boi/templates/master_worker_user_data.erb +0 -27
- data/lib/generators/terra_boi/templates/packer_ami_build.erb +0 -27
- data/lib/generators/terra_boi/templates/packer_application.erb +0 -49
- data/lib/generators/terra_boi/templates/web_servers_main.erb +0 -31
- data/lib/generators/terra_boi/templates/web_servers_output.erb +0 -14
- data/lib/generators/terra_boi/templates/web_servers_user_data.erb +0 -29
- data/lib/generators/terra_boi/web_servers_generator.rb +0 -48
@@ -2,26 +2,26 @@ require "generators/extensions"
|
|
2
2
|
|
3
3
|
module TerraBoi
|
4
4
|
class HostInitializerGenerator < Rails::Generators::Base
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
attr_accessor :application_name, :class_options
|
6
|
+
class_option :domain_name, type: :string, default: 'example.com', aliases: ["d"]
|
7
|
+
source_root File.expand_path('templates', __dir__)
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
9
|
+
desc (<<-EOF
|
10
|
+
Generate host initializer rails file
|
11
|
+
|
12
|
+
To execute, run rails generate terra_boi:host_initializer --domain_name example.com
|
13
|
+
EOF
|
14
|
+
.gsub(/\t/, '')
|
15
|
+
)
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
def init
|
18
|
+
# defined in lib/generators/extensions
|
19
|
+
self.application_name = generate_application_name
|
20
|
+
self.class_options = options
|
21
|
+
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
def create_host_initializer_file
|
24
|
+
template "host_initializer.erb", "config/initializers/hosts.rb"
|
25
|
+
end
|
26
26
|
end
|
27
27
|
end
|
@@ -1,26 +1,7 @@
|
|
1
1
|
FROM ruby:<%= class_options[:ruby_version] %>
|
2
2
|
|
3
|
-
|
4
|
-
RUN
|
5
|
-
|
6
|
-
RUN apt-get update -qq && apt-get install -y build-essential && apt-get install -y cron
|
7
|
-
|
8
|
-
# # for postgres
|
9
|
-
# RUN apt-get install -y libpq-dev
|
10
|
-
|
11
|
-
# # for nokogiri
|
12
|
-
# RUN apt-get install -y libxml2-dev libxslt1-dev
|
13
|
-
|
14
|
-
# # for capybara-webkit
|
15
|
-
# RUN apt-get install -y libqtwebkit4 libqt4-dev xvfb
|
16
|
-
|
17
|
-
# for a JS runtime
|
18
|
-
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash -
|
19
|
-
RUN apt-get install -y nodejs
|
20
|
-
|
21
|
-
RUN node -v
|
22
|
-
RUN npm -v
|
23
|
-
|
3
|
+
RUN apt-get update -qq && apt-get install -y npm build-essential cron
|
4
|
+
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt-get install -y nodejs
|
24
5
|
RUN npm install yarn -g
|
25
6
|
|
26
7
|
ENV APP_HOME /<%= application_name %>
|
@@ -29,13 +10,13 @@ WORKDIR $APP_HOME
|
|
29
10
|
|
30
11
|
ADD Gemfile* $APP_HOME/
|
31
12
|
RUN bundle install
|
13
|
+
RUN yarn install --check-files
|
32
14
|
|
33
15
|
ADD . $APP_HOME
|
34
16
|
|
35
|
-
RUN yarn install --check-files
|
36
17
|
RUN RAILS_ENV=production rails assets:precompile
|
37
18
|
RUN service cron start
|
38
19
|
|
39
20
|
EXPOSE 3000
|
40
21
|
|
41
|
-
ENTRYPOINT bin/rails server --port 3000 -b 0.0.0.0
|
22
|
+
ENTRYPOINT rake db:migrate && bin/rails server --port 3000 -b 0.0.0.0
|
@@ -0,0 +1,32 @@
|
|
1
|
+
provider "aws" {
|
2
|
+
version = "~> 2.0"
|
3
|
+
region = var.region
|
4
|
+
}
|
5
|
+
|
6
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
7
|
+
# 1. STATE
|
8
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
9
|
+
|
10
|
+
terraform {
|
11
|
+
backend "s3" {
|
12
|
+
bucket = "<%= application_name %>-terraform-state-storage"
|
13
|
+
key = "terraform/terra-boi-cert"
|
14
|
+
region = "us-east-2"
|
15
|
+
dynamodb_table = "<%= application_name %>-terraform-state-lock"
|
16
|
+
encrypt = true
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
21
|
+
# 2. CERT
|
22
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
23
|
+
|
24
|
+
resource "aws_acm_certificate_validation" "cert" {
|
25
|
+
certificate_arn = aws_acm_certificate.cert.arn
|
26
|
+
}
|
27
|
+
|
28
|
+
resource "aws_acm_certificate" "cert" {
|
29
|
+
domain_name = "*.${var.domain_name}"
|
30
|
+
subject_alternative_names = ["${var.domain_name}"]
|
31
|
+
validation_method = "DNS"
|
32
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -----------------------------
|
2
|
+
# 1. GENERAL
|
3
|
+
# -----------------------------
|
4
|
+
|
5
|
+
# Optional
|
6
|
+
|
7
|
+
variable "region" {
|
8
|
+
type = string
|
9
|
+
default = "us-east-2"
|
10
|
+
}
|
11
|
+
|
12
|
+
variable "domain_name" {
|
13
|
+
type = string
|
14
|
+
default = "<%= class_options[:domain_name] %>"
|
15
|
+
}
|
@@ -1,31 +1,31 @@
|
|
1
1
|
test:
|
2
2
|
service: Disk
|
3
|
-
root:
|
3
|
+
root: <%= Rails.root.join("tmp/storage") %>
|
4
4
|
|
5
5
|
local:
|
6
6
|
service: Disk
|
7
|
-
root:
|
7
|
+
root: <%= Rails.root.join("storage") %>
|
8
8
|
|
9
9
|
# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
|
10
10
|
amazon:
|
11
11
|
service: S3
|
12
|
-
access_key_id:
|
13
|
-
secret_access_key:
|
12
|
+
access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>
|
13
|
+
secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>
|
14
14
|
region: us-east-2
|
15
|
-
bucket:
|
15
|
+
bucket: testsweet-<%= ENV["INFRASTRUCTURE_ENV"] %>-web-assets-assets
|
16
16
|
|
17
17
|
# Remember not to checkin your GCS keyfile to a repository
|
18
18
|
# google:
|
19
19
|
# service: GCS
|
20
20
|
# project: your_project
|
21
|
-
# credentials:
|
21
|
+
# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
|
22
22
|
# bucket: your_own_bucket
|
23
23
|
|
24
24
|
# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
|
25
25
|
# microsoft:
|
26
26
|
# service: AzureStorage
|
27
27
|
# storage_account_name: your_account_name
|
28
|
-
# storage_access_key:
|
28
|
+
# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
|
29
29
|
# container: your_container_name
|
30
30
|
|
31
31
|
# mirror:
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
2
|
+
# 1. ECS IAM ROLE
|
3
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
4
|
+
|
5
|
+
resource "aws_iam_role_policy" "ecs_execution_role" {
|
6
|
+
name = "ecs_${var.app_name}_policy"
|
7
|
+
role = aws_iam_role.ecs_execution_role.id
|
8
|
+
|
9
|
+
policy = <<-EOF
|
10
|
+
{
|
11
|
+
"Version": "2012-10-17",
|
12
|
+
"Statement": [
|
13
|
+
{
|
14
|
+
"Effect": "Allow",
|
15
|
+
"Action": "*",
|
16
|
+
"Resource": "*"
|
17
|
+
}
|
18
|
+
]
|
19
|
+
}
|
20
|
+
EOF
|
21
|
+
}
|
22
|
+
|
23
|
+
resource "aws_iam_role" "ecs_execution_role" {
|
24
|
+
name = "ecs_${var.app_name}_execution_role"
|
25
|
+
|
26
|
+
assume_role_policy = <<-EOF
|
27
|
+
{
|
28
|
+
"Version": "2012-10-17",
|
29
|
+
"Statement": [
|
30
|
+
{
|
31
|
+
"Action": "sts:AssumeRole",
|
32
|
+
"Principal": {
|
33
|
+
"Service": "ecs-tasks.amazonaws.com"
|
34
|
+
},
|
35
|
+
"Effect": "Allow",
|
36
|
+
"Sid": ""
|
37
|
+
}
|
38
|
+
]
|
39
|
+
}
|
40
|
+
EOF
|
41
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
provider "aws" {
|
2
|
+
version = "~> 2.0"
|
3
|
+
region = var.region
|
4
|
+
}
|
5
|
+
|
6
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
7
|
+
# 1. STATE
|
8
|
+
# ---------------------------------------------------------------------------------------------------------------------
|
9
|
+
|
10
|
+
terraform {
|
11
|
+
backend "s3" {
|
12
|
+
bucket = "<%= application_name %>-terraform-state-storage"
|
13
|
+
key = "terraform/<%= config[:env] %>-state/terra-boi-ecr"
|
14
|
+
region = "us-east-2"
|
15
|
+
dynamodb_table = "<%= application_name %>-terraform-state-lock"
|
16
|
+
encrypt = true
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
# --------------------------------------
|
21
|
+
# 2. ECR Repository
|
22
|
+
# --------------------------------------
|
23
|
+
|
24
|
+
resource "aws_ecr_repository" "ecr_repo" {
|
25
|
+
name = "${var.app_name}-ecr-repo"
|
26
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -----------------------------
|
2
|
+
# 1. GENERAL
|
3
|
+
# -----------------------------
|
4
|
+
|
5
|
+
# Optional
|
6
|
+
|
7
|
+
variable "region" {
|
8
|
+
type = string
|
9
|
+
default = "us-east-2"
|
10
|
+
}
|
11
|
+
|
12
|
+
variable "app_name" {
|
13
|
+
type = string
|
14
|
+
default = "<%= application_name %>"
|
15
|
+
}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
terraform {
|
6
6
|
backend "s3" {
|
7
7
|
bucket = "<%= application_name %>-terraform-state-storage"
|
8
|
-
key = "terraform/<%= config[:env] %>-state/data"
|
8
|
+
key = "terraform/<%= config[:env] %>-state/terra-boi-data"
|
9
9
|
region = "us-east-2"
|
10
10
|
dynamodb_table = "<%= application_name %>-terraform-state-lock"
|
11
11
|
encrypt = true
|
@@ -20,7 +20,7 @@ variable "db_username" {}
|
|
20
20
|
variable "db_password" {}
|
21
21
|
|
22
22
|
module "db_and_s3" {
|
23
|
-
source = "github.com/charliereese/terraform_modules//data?ref=v0.0.
|
23
|
+
source = "github.com/charliereese/terraform_modules//data?ref=v0.0.27"
|
24
24
|
|
25
25
|
env = "<%= config[:env] %>"
|
26
26
|
app_name = "<%= application_name %>"
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# --------------------------------------
|
2
|
+
# 1. STATE
|
3
|
+
# --------------------------------------
|
4
|
+
|
5
|
+
terraform {
|
6
|
+
backend "s3" {
|
7
|
+
bucket = "<%= application_name %>-terraform-state-storage"
|
8
|
+
key = "terraform/<%= config[:env] %>-state/terra-boi-ecs-cluster"
|
9
|
+
region = "us-east-2"
|
10
|
+
dynamodb_table = "<%= application_name %>-terraform-state-lock"
|
11
|
+
encrypt = true
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
# --------------------------------------
|
16
|
+
# 2. Cluster
|
17
|
+
# --------------------------------------
|
18
|
+
|
19
|
+
module "ecs_cluster" {
|
20
|
+
source = "../../lib/terraform_modules/ecs_cluster"
|
21
|
+
|
22
|
+
app_name = "<%= application_name %>"
|
23
|
+
environment = "<%= config[:env] %>"
|
24
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# --------------------------------------
|
2
|
+
# 1. STATE
|
3
|
+
# --------------------------------------
|
4
|
+
|
5
|
+
terraform {
|
6
|
+
backend "s3" {
|
7
|
+
bucket = "<%= application_name %>-terraform-state-storage"
|
8
|
+
key = "terraform/<%= config[:env] %>-state/terra-boi-ecs-service-head-worker"
|
9
|
+
region = "us-east-2"
|
10
|
+
dynamodb_table = "<%= application_name %>-terraform-state-lock"
|
11
|
+
encrypt = true
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
# --------------------------------------
|
16
|
+
# 2. Cluster
|
17
|
+
# --------------------------------------
|
18
|
+
|
19
|
+
module "head_worker" {
|
20
|
+
source = "../../lib/terraform_modules/ecs_worker"
|
21
|
+
|
22
|
+
app_name = "<%= application_name %>"
|
23
|
+
environment = "<%= config[:env] %>"
|
24
|
+
app_type = "head_worker"
|
25
|
+
template_filename = "head_worker.json"
|
26
|
+
db_password = var.db_password
|
27
|
+
aws_access_key = var.aws_access_key
|
28
|
+
aws_secret_key = var.aws_secret_key
|
29
|
+
worker_task = {
|
30
|
+
memory = 512
|
31
|
+
cpu = 256
|
32
|
+
desired_count = 1 # Should always be 1. If increased, cron jobs will run multiple times. If you need more workers, create a new fargate task for your child_worker (using the same ecs_worker source) with the entrypoint ["sh", "-c", "rake db:migrate && rake jobs:work"]
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
output "ecs_service_name" {
|
37
|
+
value = module.head_worker.ecs_service_name
|
38
|
+
}
|
39
|
+
|
40
|
+
output "ecs_cluster_name" {
|
41
|
+
value = module.head_worker.ecs_cluster_name
|
42
|
+
}
|
43
|
+
|
44
|
+
variable "db_password" {
|
45
|
+
description = "The password for the database"
|
46
|
+
type = string
|
47
|
+
}
|
48
|
+
|
49
|
+
variable "aws_access_key" {
|
50
|
+
type = string
|
51
|
+
}
|
52
|
+
|
53
|
+
variable "aws_secret_key" {
|
54
|
+
type = string
|
55
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# --------------------------------------
|
2
|
+
# 1. STATE
|
3
|
+
# --------------------------------------
|
4
|
+
|
5
|
+
terraform {
|
6
|
+
backend "s3" {
|
7
|
+
bucket = "<%= application_name %>-terraform-state-storage"
|
8
|
+
key = "terraform/<%= config[:env] %>-state/terra-boi-ecs-service-web-app"
|
9
|
+
region = "us-east-2"
|
10
|
+
dynamodb_table = "<%= application_name %>-terraform-state-lock"
|
11
|
+
encrypt = true
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
# --------------------------------------
|
16
|
+
# 2. Cluster
|
17
|
+
# --------------------------------------
|
18
|
+
|
19
|
+
module "web_app" {
|
20
|
+
source = "../../lib/terraform_modules/ecs_web_app"
|
21
|
+
|
22
|
+
app_name = "<%= application_name %>"
|
23
|
+
environment = "<%= config[:env] %>"
|
24
|
+
app_type = "web_app"
|
25
|
+
db_password = var.db_password
|
26
|
+
aws_access_key = var.aws_access_key
|
27
|
+
aws_secret_key = var.aws_secret_key
|
28
|
+
web_app_task = {
|
29
|
+
memory = 512
|
30
|
+
cpu = 256
|
31
|
+
desired_count = 2
|
32
|
+
port = 3000
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
output "ecs_service_name" {
|
37
|
+
value = module.web_app.ecs_service_name
|
38
|
+
}
|
39
|
+
|
40
|
+
output "ecs_cluster_name" {
|
41
|
+
value = module.web_app.ecs_cluster_name
|
42
|
+
}
|
43
|
+
|
44
|
+
output "alb_dns" {
|
45
|
+
value = module.web_app.alb_dns
|
46
|
+
}
|
47
|
+
|
48
|
+
variable "db_password" {
|
49
|
+
description = "The password for the database"
|
50
|
+
type = string
|
51
|
+
}
|
52
|
+
|
53
|
+
variable "aws_access_key" {
|
54
|
+
type = string
|
55
|
+
}
|
56
|
+
|
57
|
+
variable "aws_secret_key" {
|
58
|
+
type = string
|
59
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Requires AWS cli >= v2.x.x
|
2
|
+
# https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
|
3
|
+
|
4
|
+
SCRIPT_DIR=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
|
5
|
+
cd $SCRIPT_DIR/../../ecr
|
6
|
+
|
7
|
+
# Retrieve an authentication token and authenticate your Docker client to your registry.
|
8
|
+
AWS_REGION=$(terraform output aws_region)
|
9
|
+
AWS_ECR_REPO_URL=$(terraform output ecr_repo_url)
|
10
|
+
AWS_ECR_REPO_NAME=$(terraform output ecr_repo_name)
|
11
|
+
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ECR_REPO_URL
|
12
|
+
|
13
|
+
# Build your Docker image using the following command
|
14
|
+
DOCKERFILE_PATH="$SCRIPT_DIR/../../../."
|
15
|
+
if ! docker build -t $AWS_ECR_REPO_NAME $DOCKERFILE_PATH; then
|
16
|
+
echo "TERRA_BOI | Command failed. Pruning Docker memory then retrying!"
|
17
|
+
echo "TERRA_BOI | Pruning may take a couple minutes..."
|
18
|
+
docker system prune -a && docker build -t $AWS_ECR_REPO_NAME $DOCKERFILE_PATH
|
19
|
+
fi
|
20
|
+
|
21
|
+
# After the build completes, tag your image so you can push the image to this repository:
|
22
|
+
docker tag $AWS_ECR_REPO_NAME:latest $AWS_ECR_REPO_URL:latest
|
23
|
+
|
24
|
+
# Run the following command to push this image to your newly created AWS repository:
|
25
|
+
docker push $AWS_ECR_REPO_URL:latest
|