Question

How to setup automatic deployments from DO registry to Apps platform

Posted February 11, 2021 1.1k views
DigitalOcean App PlatformDigitalOcean Container Registry (DOCR)

I was following the tutorial on https://www.digitalocean.com/docs/app-platform/how-to/deploy-from-registry/

But ran into some issues, when i push a new image to the container registry the app platform does not automatically trigger a new deployment.
I have to manually go into the component setting and change the source tag to whatever is the latest tag to trigger a new deployment.

I’m not sure what i’m doing wrong. I’ve tried to use both existing and unique tag names, but still no automatic deployments :(

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
3 answers

@mihkel195 the documentation is incredibly misleading and spent many hours before finding this post which confirms that it won’t automatically deploy.

One possible solution we are looking into is using doctl to trigger a deployment once an image has been pushed (we use GitHub actions).

Keep in mind there is another downside to this when you push an updated Docker image using an existing tag (ex: latest) the old version remains available (in the ether), but there is no way to view (or even less delete) it through the web interface and you will HAVE to use doctl to clean up images.

Hello @mihkel195

Unfortunately, App Platform doesn’t support auto-deployment for changes in DOCR image source at this point but it is on the roadmap. There is no ETA as of now.

I encourage you to share your thoughts about this on our ideas page:
https://ideas.digitalocean.com/

We’re constantly looking to improve all aspects of our service and welcome any other ideas or feedback you have! By sharing your thoughts there, it helps us to better prioritize working on the features that you feel need more attention.

Best,
Dikshith

I too have sunk so much time into automating deployments with App Platform and came up against the same confusion. Without a doubt this is a majorly needed feature for the App Platform so it can be considered a viable professional solution.

@mihkel195 there is one way to do this. I have automated my infrastructure using Terraform which will essentially recreate the Docker component every time you change the image in your Terraform configuration and deploy that using Terraform. It’s not ideal but at least it can be automated and it’s not too slow.

This link is a good place to get started with Terraform:

https://registry.terraform.io/providers/digitalocean/digitalocean/latest/docs/resources/app#image

  • I had the same problem while migrating to App Platform.
    I assumed that when pushing to DO Docker registry a new deployment was spawned automatically but then I realised that was not the case.
    I asked to my contacts in DO but still waiting for an answer so I started playing with doctl to see what I could do and I ended up writing a simple Python script which spawn a deployment for a specific app.
    Now I am trying to understand if it uses the latest image available.
    The script implies you have a working doctl already logged in.
    I am using it in a GitHub Actions which build and push the new image linked to the app I want to re-deploy.
    Example:
    python deploy.py --app <app_name>

    https://gist.github.com/mindflayer/90dc8d88db29e86f30a856c093d80423

    EDIT: I am modifying it to pass the right tag to deploy as argument.

    • I updated the script adding --tag.
      In my GitHub Action I am using registry.digitalocean.com/foo/bar:${{ github.sha }} as tag and calling the script with python deploy.py --app <app_name> --tag ${GITHUB_SHA}.