codeship-library / aws-utilities

Docker images and scripts to deploy to AWS
MIT License
56 stars 44 forks source link

Including the EB CLI in base or deployment image? #37

Closed andyshinn closed 7 years ago

andyshinn commented 7 years ago

I am using the EB CLI to currently deploy my application. I understand the deployment image does something similar with the Elastic Beanstalk API. But it would be nice to just use the EB commands that I am used to.

What are the thoughts on including a EB CLI with one of the images?

mlocher commented 7 years ago

Hey @andyshinn,

we don't currently plan to maintain a Docker image with the AWS EB CLI installed, as we don't make use of it. That said, it's really easy to adapt our base image to install the EB CLI instead of the default AWS CLI.

You could use the following Dockerfile for example

FROM python:3.5-alpine

# which version of the AWS EB CLI to install.
# https://pypi.python.org/pypi/awsebcli/
ARG AWS_EB_CLI_VERSION="3.10.1"

ENV PIP_DISABLE_PIP_VERSION_CHECK=true

RUN \
  pip install awsebcli==${AWS_EB_CLI_VERSION} && \
  mkdir -p "${HOME}/.aws"

If you run docker build -t aws_eb_cli and you can then check if everything works as expected

$ docker run -it --rm aws_eb_cli eb --version
EB CLI 3.10.1 (Python 3.5.3)

You can either include that Dockerfile directly in your repository and build it as part of your Codeship build, or you can create a separate repository and push the image to a remote registry (e.g. Docker Hub or Quay) and then use the built image from there.