Objective: to login to ECR every morning on my Mac.
I've got a cron job as follow (crontab -e, user: rad):
30 8 * * * /usr/local/bin/aws ecr get-login-password --region eu-central-1 | /usr/local/bin/docker login --username AWS --password-stdin 123456789012.dkr.ecr.eu-central-1.amazonaws.com
But I get the following error (in my mail):
rom rad@mac.localdomain Sun Dec 13 00:00:00 2020
X-Original-To: rad
Delivered-To: rad@mac.localdomain
From: rad@mac.localdomain (Cron Daemon)
To: rad@mac.localdomain
Subject: Cron <rad@mac> /usr/local/bin/aws ecr get-login-password --region eu-central-1 | /usr/local/bin/docker login --username AWS --password-stdin 123456789012.dkr.ecr.eu-central-1.amazonaws.com
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=rad>
X-Cron-Env: <USER=rad>
Date: Sun, 13 Dec 2020 00:00:00 +0000
Error saving credentials: error storing credentials - err: exit status 1, out: `Write permissions error.`
I also added --config ~/.docker (and --config /User/rad/.docker) to docker command, but it didn't help.
For the record the command works just fine when I run it in my terminal. The permissions of my ~/.docker directory are:
ll -d ~/.docker
drwxr-xr-x 11 rad staff 352B Dec 13 11:15 /Users/rad/.docker
There's this similar question, but it didn't help.
ANSWER (credit goes to @BMitch): No need to setup a cron job. Just add the following to ~/.docker/config.json (if you don't have Docker for Desktop, install the helper first.):
{
"credHelpers": {
"123456789012.dkr.ecr.eu-central-1.amazonaws.com": "ecr-login"
}
}