Overview
To complete a Container Listing, there are two main stages:
- Upload the container image to the AWS ECR repository
- Create the first version of the container listing in AWS Marketplace
The container image must be pushed to the AWS ECR repository before the first version can be added in AWS Marketplace. Once the image is uploaded and the first version is created, Labra can proceed with internal testing and submit the listing for AWS testing.
Prerequisites
Before starting the container upload process, make sure you have the following:
- Access to the AWS account where your container listing is hosted.
- The latest version of the AWS CLI installed.
- Docker installed.
-
A Dockerfile for the container image you want to upload.
- If you are using a Helm chart, Helm 3 installed.
-
The required container image or Helm chart available locally.
π Learn more! Click here for AWS documentation on Pushing a Helm Chart
Part 1 β Upload Your Container Artifact
β‘οΈ Step 1: Access the AWS Marketplace Management Portal
- Log in to your AWS Console with the Seller account where you want your listing to be hosted.
- Open the AWS Partner Central.
Fig. 1
- Navigate to Build β Server products on the main menu on the far left.
Fig. 2
- Locate and open your container product/listing.
Fig. 3
- From the product page, locate the Repositories section.
Fig. 4
This is the repository that will be used to upload the container image.
β‘οΈ Step 2: Open the ECR Repository
From the server product page:
- Scroll down to find the Repositories tab (see Fig. 4 above).
- Select the repository associated with your container listing.
- Click View push commands.
Fig. 5
AWS provides the commands required to authenticate, build, tag, and push the container image.
Choose Your Upload Path
From this point, follow the path that matches your product:
Docker container image
β Follow Steps 3Aβ6A
Helm chart
β Follow Steps 3Bβ6B
Once your artifact has been successfully uploaded and verified, continue to Part 2 β Create the First AWS Marketplace Version.
Docker Container Image
β‘οΈ Step 3A: Authenticate Docker to AWS ECR
From the View push commands section, copy the Docker authentication command provided by AWS and run it in your terminal.
The command follows this structure:
aws ecr get-login-password --region <<AWS_REGION>> | docker login --username AWS --password-stdin <<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.comWhere:
-
<<AWS_REGION>>β AWS Region where the repository was created -
<<AWS_ACCOUNT_ID>>β AWS Account ID associated with the repository
You should receive a confirmation that Docker successfully logged in to the ECR registry.
π Note: If you receive an error while using the AWS CLI, verify that you are using the latest versions of both AWS CLI and Docker.
π Learn more! Click here for AWS documentation on Registry Authentication.
β‘οΈ Step 4A: Build the Docker Image
Build your Docker image locally.
Make sure you have the required Dockerfile and build the image using:
docker build -t <<LOCAL_REPO>>:<<LOCAL_IMAGE_TAG>> .Where:
-
<<LOCAL_REPO>>β Name of your local Docker repository/image -
<<LOCAL_IMAGE_TAG>>β Tag assigned to your local image
π Learn more! Click here for AWS documentation on Creating a Docker image.
β‘οΈ Step 5A: Tag the Docker Image
Tag the locally built image with the AWS ECR repository URI.
Use:
docker tag <<LOCAL_REPO>>:<<LOCAL_IMAGE_TAG>> <<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.com/<<REPOSITORY_NAME>>:<<IMAGE_TAG>>The image reference changes from your local image:
<<LOCAL_REPO>>:<<LOCAL_IMAGE_TAG>>
β
<<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.com/<<REPOSITORY_NAME>>:<<IMAGE_TAG>>
β οΈ Important: AWS Marketplace ECR repository tags are immutable. Do not use the latest tag or leave the image tag empty. Use a specific version tag, such as 1.0.0, 1.0, or another appropriate version identifier.
β‘οΈ Step 6A: Push the Docker Image to ECR
Once the image has been tagged, push it to the AWS ECR repository:
docker push <<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.com/<<REPOSITORY_NAME>>:<<IMAGE_TAG>>Wait for the upload to complete.
You should see the Docker layers being uploaded, followed by a digest confirming that the image was pushed successfully.
β‘οΈ Step 7A: Verify the Docker Image
Verify that the image was successfully uploaded to ECR:
aws ecr describe-images \
--registry-id <<AWS_ACCOUNT_ID>> \
--repository-name <<REPOSITORY_NAME>> \
--region <<AWS_REGION>>Verify that:
- The expected repository is displayed.
- The expected image tag/version is present.
- An image digest is available.
Once the image has been successfully uploaded and verified, continue to Part 2 β Create the First AWS Marketplace Version.
Helm Chart
β‘οΈ Step 3B: Authenticate Helm to AWS ECR
From the View push commands section, copy the Helm authentication command provided by AWS and run it in your terminal.
The command follows this structure:
aws ecr get-login-password --region <<AWS_REGION>> | helm registry login --username AWS --password-stdin <<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.comWhere:
-
<<AWS_REGION>>β AWS Region where the repository was created -
<<AWS_ACCOUNT_ID>>β AWS Account ID associated with the repository
You should receive a confirmation that Helm successfully logged in to the ECR registry.
π Learn more! Click here for AWS documentation on Registry Authentication.
β‘οΈ Step 4B: Package the Helm Chart
Package your Helm chart using:
helm package .This creates a .tgz package that can be pushed to the AWS ECR repository.
The package name will follow the Helm chart name and version defined in your chart.
β‘οΈ Step 5B: Push the Helm Chart to ECR
Push the packaged Helm chart to your AWS ECR repository:
helm push <<CHART_NAME>>-<<CHART_VERSION>>.tgz oci://<<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.com/<<REPOSITORY_NAMESPACE>>AWS automatically appends the chart name to the repository URI and uses the chart version as the tag.
Make sure the chart name and version correspond to the values defined in your Helm chart.
β οΈ Important: Use a specific chart version rather than relying on an unversioned or mutable tag.
π Learn more! Click here for AWS documentation on Pushing a Helm chart to an Amazon ECR private repository.
β‘οΈ Step 6B: Verify the Helm Chart
Verify that the Helm chart was successfully uploaded to ECR:
aws ecr describe-images \
--registry-id <<AWS_ACCOUNT_ID>> \
--repository-name <<REPOSITORY_NAME>> \
--region <<AWS_REGION>>Verify that the expected chart/version is present in the repository.
Once the Helm chart has been successfully uploaded and verified, continue to Part 2 β Create the First AWS Marketplace Version.
Part 2 β Create the First AWS Marketplace Version
β‘οΈ Step 7: Return to the AWS Marketplace Product
Go back to your container product in the AWS Marketplace Management Portal.
In the product page:
- Select Request changes.
- Select Update versions.
- Select Add new version.
Fig. 6
The first version needs to be added because the container image has been uploaded to the repository but is not yet configured as a Marketplace container listing version.
β‘οΈ Step 8: Enter the Version Details
Complete the required information for the new version.
Version title
Enter a unique title for the version. This is the version that will be displayed to buyers when they configure or launch the product.
Use the version identifier that corresponds to the container image you uploaded to ECR, for example:
- v1
- 1.0
- Another version identifier used by your team
Release notes
Enter a description of what is new or included in this version. Release notes help buyers understand what has changed or been added to the product.
For the first version, you can describe the initial release and any relevant information about the container.
Example: Initial release of the container image.
Once you have completed the Version title and Release notes, click Next at the bottom to continue to the next step to configure the delivery option.
Fig. 7
β‘οΈ Step 9: Configure Your Delivery Option
When adding a delivery option, select the option that matches how your product is delivered:
- Docker container image β Follow Step 9A: Configure the Docker Container Image
- Helm chart β Follow Step 9B: Configure the Helm Chart
-
Amazon EKS add-on β Follow the applicable AWS instructions for configuring the EKS add-on.
Important: The fields and configuration options that appear depend on the delivery method you select.
β‘οΈ Step 9A: Configure the Docker Container Image
After selecting Docker container image, AWS will display additional configuration fields. Complete the following sections:
1. Select the Supported Services
Select the AWS services where customers will be able to launch or use your container image.
Available options may include:
- Amazon Elastic Container Service (ECS)
- Amazon Elastic Kubernetes Service (EKS)
- Amazon ECS Anywhere
- Amazon EKS Anywhere / self-managed Kubernetes
- Amazon Bedrock AgentCore Runtime, if applicable
Select only the services that your product supports.
π Note: AWS may display additional guidance or requirements depending on the service you select. Review any messages shown in the form before continuing.
2. Enter the Container Image URI
Enter the full URI of the container image that you previously pushed to the AWS ECR repository.
Use the following format:
<<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.com/<<REPOSITORY_NAME>>:<<IMAGE_TAG>>For example, the structure is:
<AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<repository-name>:<image-tag>Make sure the URI:
- Points to the ECR repository created for your Marketplace product.
- Uses the image tag that was pushed in Part 1.
- Matches the image/version you are publishing.
3. Add Additional Container Images (If Applicable)
If your product requires multiple container images, select Add container image and enter the URI for each additional image.
AWS allows you to add multiple container images to a delivery option. Repeat this process for each image required by your product.
4. Add a Delivery Option Description
Enter a description explaining what this delivery option provides and how the buyer will use or launch the product.
The description is displayed on the product details page and when the buyer is configuring or launching the product.
You can use this section to briefly explain:
- What the container image contains.
- What the delivery option is intended for.
- Any important information the buyer should know before deployment.
Maximum length: 1,000 characters.
5. Add Usage Instructions
Enter instructions that help buyers understand how to use, configure, or launch the container image.
You can include links to your product documentation where appropriate.
Consider including information such as:
- Prerequisites
- How to configure the product
- How to launch or deploy the container
- Any required configuration
- Where to find additional documentation
Maximum length: 4,000 characters.
6. Add Deployment Templates (Optional)
If your product requires or supports deployment templates, you can add them in this section.
Deployment templates can help buyers launch your product more easily, particularly when your product requires additional resources or configuration.
Select Add deployment template if you need to provide one.
Deployment templates are optional, and AWS allows up to 4 deployment templates per delivery option.
β‘οΈ Step 9B: Configure the Helm Chart
After selecting Helm chart, AWS displays additional configuration fields.
1. Select the Supported Services
Select the AWS services or environments where customers will be able to launch the software.
Select only the services supported by your Helm chart.
The options shown in AWS may include:
- Amazon Elastic Kubernetes Service (EKS)
- Amazon EKS Anywhere / Self-managed Kubernetes
2. Enter the Helm Chart URI
Enter the URI of the Helm chart hosted in your AWS ECR repository.
Use:
<<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.com/<<REPOSITORY_NAME>>/<<CHART_NAME>>:<<CHART_VERSION>>Make sure the URI corresponds to the Helm chart that you uploaded in Step 5B.
The field supports a maximum of 1,000 characters.
3. Enter the Container Image URI
Enter the URI of the container image used by the Helm chart.
Use:
<<AWS_ACCOUNT_ID>>.dkr.ecr.<<AWS_REGION>>.amazonaws.com/<<REPOSITORY_NAME>>:<<IMAGE_TAG>>If your Helm chart uses additional container images, select Add container image and provide their URIs.
4. Add a Delivery Option Title
Enter the name that will be displayed to buyers for this delivery option.
For example:
New delivery option 1Use a clear name that helps buyers understand the deployment option.
Maximum length: 256 characters.
5. Add a Delivery Option Description
Enter a description explaining what this delivery option provides and how the buyer will use or launch the product.
Maximum length: 1,000 characters.
6. Add Usage Instructions
Provide detailed instructions that help buyers use or launch the product.
You can include links to your product documentation.
Consider including:
- Prerequisites
- Installation instructions
- Configuration instructions
- Deployment instructions
- Links to additional documentation
Maximum length: 4,000 characters.
7. Helm Release Name β Optional
You can provide a default Helm release name for the installation.
If you leave this field empty, AWS/Helm will generate a release name automatically.
Maximum length: 50 characters.
8. Helm Installation Namespace β Optional
You can specify the Kubernetes namespace where the Helm chart will be installed.
Maximum length: 50 characters.
9. Kubernetes Service Account Name
Enter the name of the Kubernetes service account used by the application.
The service account is used to connect to AWS IAM for permissions required by the product.
Maximum length: 50 characters.
10. Add Override Parameters, If Applicable
Override parameters allow buyers to update default values provided by your Helm chart when launching the application.
Select Add override parameter to add parameters that buyers should be able to customize.
AWS allows up to 15 override parameters per delivery option.
β‘οΈ Step 10: Review and Submit the Version
Before submitting the new version, review the information entered.
For Docker container images, confirm:
- The correct supported services are selected.
- The correct container image URI is provided.
- The image tag matches the image uploaded to ECR.
- Any additional container images have been added.
- The delivery option description is complete.
- Usage instructions are complete.
- Any required deployment templates have been added.
For Helm charts, confirm:
- The correct supported services are selected.
- The correct Helm chart URI is provided.
- The required container image URI is provided.
- Any additional container images have been added.
- The delivery option title and description are complete.
- Usage instructions are complete.
- Any applicable Helm release name and namespace are correct.
- The Kubernetes service account name is correct, if applicable.
- Any required override parameters have been added.
Once everything is complete, select Add version / submit the version according to the AWS Marketplace workflow.
Part 3 β Labra Testing
β‘οΈ Step 11: Notify Labra
Once the container image has been pushed to ECR and the first Marketplace version has been added, notify your Labra Onboarding Specialist.
At this point, Labra can:
- Confirm the container image is available.
- Run the internal tests.
- Push the listing to AWS testing.
- Continue the process toward making the listing live.
Quick Checklist
Customer β Technical Setup
β AWS CLI installed
β Docker installed
β Dockerfile available locally
β AWS CLI authenticated
β ECR repository opened
β Docker authenticated to ECR
β Docker image built locally
β Docker image tagged
β Docker image pushed to ECR
β Image/tag verified in ECR
Customer β WS Marketplace
β Product opened in AWS Marketplace Management Portal
β Request changes selected
β Update versions selected
β Add new version selected
β Version details completed
β Delivery option added
β Container image reference provided
β Version submitted
Labra
β Customer notified Labra that the image/version is ready
β Labra runs internal tests
β Labra pushes to AWS testing
β Listing proceeds toward launch