I'm trying to push my Docker image to AWS ECR and I'm getting Not Authorized
when trying to do so.
I have all of the required variables set as variables in Azure DevOps, which is what I'm using. So I'm not sure why it's not getting proper authentication.
Here's my YAML code:
trigger:
- main
pool:
vmImage: ubuntu-latest
strategy:
matrix:
Python38:
python.version: '3.8'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
python -m pip install --upgrade pip requests os smtplib datetime
pip install -r requirements.txt
displayName: 'Install dependencies'
- task: CopyFiles@2
inputs:
SourceFolder:
Contents: '*'
TargetFolder: $(build.artifactstagingdirectory)
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(build.artifactstagingdirectory)'
includeRootFolder: true
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/project.zip'
replaceExistingArchive: true
- task: S3Upload@1
inputs:
awsCredentials: 'weather'
regionName: 'us-west-2'
bucketName: 'weather-update-project-bucket'
sourceFolder: '$(build.artifactstagingdirectory)'
globExpressions: '*project.zip*'
targetFolder: 'python'
createBucket: true
- script: |
aws ecr get-login-password --region $(AWS_REGION) | docker login --username AWS --password-stdin $(AWS_ACCOUNT_ID).dkr.ecr.$(AWS_REGION).amazonaws.com
displayName: 'Login to AWS'
env:
AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID)
AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY)
- task: Docker@2
inputs:
repository: 'public.ecr.aws/u1c1h9j4/weather-update-project'
command: 'buildAndPush'
Dockerfile: '**/Dockerfile'
tags: 'latest'
It's better to use the Amazon ECR Push task instead of the regular Docker push.
First, build the image with Docker@2
:
- task: Docker@2
displayName: Build an image
inputs:
command: build
dockerfile: '**/Dockerfile'
buildContext: '$(Build.SourcesDirectory)'
tags: 'latest'
After that, push with ECRPushImage@1
:
- task: ECRPushImage@1
inputs:
awsCredentials: 'weather'
regionName: us-west-2
imageSource: 'imagename'
sourceImageName: 'YOUR-IAMGE-NAME'
sourceImageTag: 'latest'
pushTag: 'latest'
repositoryName: 'YOUR-AWS-ECR-REPO'
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.