@@ -3,26 +3,59 @@ AWS_ECR_EVAL_REGION="$(eval echo "${AWS_ECR_STR_REGION}")"
3
3
AWS_ECR_EVAL_PROFILE_NAME=" $( eval echo " ${AWS_ECR_STR_PROFILE_NAME} " ) "
4
4
AWS_ECR_EVAL_ACCOUNT_ID=" $( eval echo " ${AWS_ECR_STR_ACCOUNT_ID} " ) "
5
5
AWS_ECR_VAL_ACCOUNT_URL=" ${AWS_ECR_EVAL_ACCOUNT_ID} .dkr.ecr.${AWS_ECR_EVAL_REGION} .${AWS_ECR_STR_AWS_DOMAIN} "
6
+ AWS_ECR_EVAL_PUBLIC_REGISTRY_ALIAS=" $( eval echo " ${AWS_ECR_STR_PUBLIC_REGISTRY_ALIAS} " ) "
6
7
ECR_COMMAND=" ecr"
7
8
9
+ eval " $SCRIPT_UTILS "
10
+ detect_os
11
+ set_sudo
12
+
8
13
if [ -z " ${AWS_ECR_EVAL_ACCOUNT_ID} " ]; then
9
14
echo " The account ID is not found. Please add the account ID before continuing."
10
15
exit 1
11
16
fi
12
17
13
18
if [ " $AWS_ECR_BOOL_PUBLIC_REGISTRY " == " 1" ]; then
14
19
AWS_ECR_EVAL_REGION=" us-east-1"
15
- AWS_ECR_VAL_ACCOUNT_URL=" public.ecr.aws"
20
+ AWS_ECR_VAL_ACCOUNT_URL=" public.ecr.aws/ ${AWS_ECR_EVAL_PUBLIC_REGISTRY_ALIAS} "
16
21
ECR_COMMAND=" ecr-public"
17
- fi
18
-
19
- if [ -n " ${AWS_ECR_EVAL_PROFILE_NAME} " ]; then
20
- set -- " $@ " --profile " ${AWS_ECR_EVAL_PROFILE_NAME} "
22
+ aws " ${ECR_COMMAND} " get-login-password --region " ${AWS_ECR_EVAL_REGION} " --profile " ${AWS_ECR_EVAL_PROFILE_NAME} " \
23
+ | docker login --username AWS --password-stdin " ${AWS_ECR_VAL_ACCOUNT_URL} "
24
+ exit 0
21
25
fi
22
26
23
27
if [ -f " $HOME /.docker/config.json" ] && grep " ${AWS_ECR_VAL_ACCOUNT_URL} " < ~ /.docker/config.json > /dev/null 2>&1 ; then
24
- echo " Credential helper is already installed"
25
- else
26
- docker logout " ${AWS_ECR_VAL_ACCOUNT_URL} "
27
- aws " ${ECR_COMMAND} " get-login-password --region " ${AWS_ECR_EVAL_REGION} " " $@ " | docker login --username AWS --password-stdin " ${AWS_ECR_VAL_ACCOUNT_URL} "
28
+ echo " Credential helper is already installed and configured"
29
+ exit 0
28
30
fi
31
+
32
+ configure_config_json (){
33
+ echo " Configuring config.json..."
34
+ CONFIG_FILE=" $HOME /.docker/config.json"
35
+ mkdir -p " $( dirname " ${CONFIG_FILE} " ) "
36
+
37
+ jq_flag=" "
38
+ if [ ! -s " ${CONFIG_FILE} " ]; then
39
+ jq_flag=" -n"
40
+ fi
41
+ jq " ${jq_flag} " --arg url " ${AWS_ECR_VAL_ACCOUNT_URL} " \
42
+ --arg helper " ecr-login" ' .credHelpers[$url] = $helper' \
43
+ " ${CONFIG_FILE} " > temp.json && mv temp.json " ${CONFIG_FILE} "
44
+ }
45
+
46
+ install_aws_ecr_credential_helper (){
47
+ echo " Installing AWS ECR Credential Helper..."
48
+ if [[ " $SYS_ENV_PLATFORM " = " linux" ]]; then
49
+ $SUDO apt update
50
+ $SUDO apt install amazon-ecr-credential-helper
51
+ configure_config_json
52
+ elif [[ " $SYS_ENV_PLATFORM " = " macos" ]]; then
53
+ brew install docker-credential-helper-ecr
54
+ configure_config_json
55
+ else
56
+ docker logout " ${AWS_ECR_VAL_ACCOUNT_URL} "
57
+ aws " ${ECR_COMMAND} " get-login-password --region " ${AWS_ECR_EVAL_REGION} " --profile " ${AWS_ECR_EVAL_PROFILE_NAME} " | docker login --username AWS --password-stdin " ${AWS_ECR_VAL_ACCOUNT_URL} "
58
+ fi
59
+ }
60
+
61
+ install_aws_ecr_credential_helper
0 commit comments