Home > Net >  Dockerfile suggestion on multiple layers
Dockerfile suggestion on multiple layers

Time:09-04

I want a minimal image of ubuntu which is having docker and terraform installed in it.

where as I am trying to write Dockerfile as below please suggest me which one is best practice while writing Dockerfile:

FROM ubuntu
FROM docker
FROM hashicorp/terraform
RUN terraform --version
RUN docker --version

getting error as below for above Dockerfile:

/bin/sh: docker: not found
The command '/bin/sh -c docker --version' returned a non-zero code: 127

or

FROM ubuntu:latest AS ubuntu
RUN apt update && apt upgrade -y
RUN apt install unzip -y
COPY terraform.zip /home/
RUN unzip /home/terraform.zip
RUN mv terraform /usr/local/bin/
RUN terraform version

FROM docker
COPY --from=ubuntu /usr/local/bin/ /usr/local/bin
RUN terraform version

CodePudding user response:

This is a quick and dirty solution just to get it working - hopefully it helps you.

Dockerfile:

# Choose your desired ubuntu version instead of :latest
FROM ubuntu:latest
RUN apt-get update
# Install docker   other packages to get terraform setup
RUN apt install docker.io gnupg curl software-properties-common -y
# Setup terraform
RUN curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add -
RUN apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
RUN apt update
RUN apt install terraform
# Run the container
CMD [ "bash" ]

Commands to run:

  1. docker build . -t myapp
  2. docker run -ti --entrypoint /bin/sh myapp

Now that you're in the container:

# terraform -v   
Terraform v1.2.8
on linux_amd64
# docker --version
Docker version 20.10.12, build 20.10.12-0ubuntu4
  • Related