I have several Scala applications that I want to deploy in a Docker multi-container environment on Amazon's Elastic Beanstalk.
It seems like the whole process is a bit more complicated that I was expecting. So I'm really looking forward to hear some feedback for best practices and other ways to improve my entire process and be able to "automate" some steps (if possible).
This is my current process:
I would love to find a way to automate step 2. Since this requires me to have an extra repo per each app. I have my apps hosted in a git repo, and I have an "extra" repo per each where I host the artifacts generated in step 1 to be able to do step 3.
Elastic Beanstalk supports the deployment of web applications from Docker containers. With Docker containers, you can define your own runtime environment.
A Dockerrun. aws. json file is an Elastic Beanstalk–specific JSON file that describes how to deploy a set of Docker containers as an Elastic Beanstalk application. You can use a Dockerrun. aws.
Elastic Beanstalk is an AWS service for deploying and scaling web applications and services. It eliminates the need to manually launch AWS resources required to run applications. Using your IDE, AWS Management Console, or Git repository, you upload the Docker container image.
If you're willing to use a different SBT plugin for step 1, then you can automate step 2.
Although quay.io supports building your image from GitHub, they do not require it. (You can publish a local Docker image directly to your quay.io repository.)
dockerRespository := Some("quay.io/myaccount")
sbt docker:stage
sbt docker:publishLocal
docker images
. The new image should have a name like quay.io/myaccount/app
docker login quay.io
. Read their tutorial.sbt docker:publish
. Now your quay.io account should contain the same IMAGE ID as your local Docker daemon.Proceed with steps 3+ on the AWS side...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With