Skip to content

Instantly share code, notes, and snippets.

@0xAhmed
0xAhmed / Dockerfile
Created September 14, 2017 20:30
Using Docker build arguments
FROM golang:latest
# If RELEASE is not passed as a build arg, go with master
ARG RELEASE=master
WORKDIR /go
ENV GOBIN $GOPATH/bin
RUN echo "Using Hacher ${RELEASE}" \
&& wget -q https://github.com/Dockbit/hacher/archive/${RELEASE}.tar.gz -O hacher-${RELEASE}.tar.gz \
&& tar xf hacher-${RELEASE}.tar.gz \
&& cd hacher-* \
@0xAhmed
0xAhmed / build.sh
Last active September 14, 2017 20:36
Passing a Docker build-time argument
docker build -t hacher:latest --build-arg RELEASE=v0.1.0 .
@0xAhmed
0xAhmed / Dockerfile
Last active September 12, 2017 21:01
Using Docker build arguments and multi-stage builds
FROM golang:latest as builder
# If RELEASE is not passed as a build arg, go with master
ARG RELEASE=master
WORKDIR /go
ENV GOBIN $GOPATH/bin
RUN echo "Using Hacher ${RELEASE}" \
&& wget -q https://github.com/Dockbit/hacher/archive/${RELEASE}.tar.gz -O hacher-${RELEASE}.tar.gz \
&& tar xf hacher-${RELEASE}.tar.gz \
&& cd hacher-* \
@0xAhmed
0xAhmed / build-template-results.txt
Created December 29, 2016 09:13
Docker build: Dockerfile render results
$ ls
2.1 2.3 Dockerfile.template render.sh
$ cd 2.1 && docker build -t my_app:2.1 .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ruby:2.1
---> 2903b59d264e
Step 2 : CMD ruby --version
---> Running in cea80b05db0f
---> 08c4ae2b2188
Removing intermediate container cea80b05db0f
@0xAhmed
0xAhmed / render.sh
Created December 29, 2016 09:01
Render Dockerfile.template
#!/bin/bash
render() {
sedStr="
s!%%RUBY_VERSION%%!$version!g;
"
sed -r "$sedStr" $1
}
@0xAhmed
0xAhmed / Dockerfile.template
Created December 29, 2016 08:58
Dockerfile template: Ruby versions
FROM ruby:%%RUBY_VERSION%%
CMD ruby --version
@0xAhmed
0xAhmed / build-env-results.txt
Created December 29, 2016 08:56
Docker build: Using ENV results
$ docker build -t my_app .
$ docker run -e feature_enabled=true my_app
Feature activated
@0xAhmed
0xAhmed / Dockerfile
Created December 29, 2016 08:55
Docker build: Using ENV
FROM busybox
ENV feature_enabled false
CMD sh -c 'if [ "$feature_enabled" = true ]; then echo "Feature activated"; else echo "Feature not activated"; fi'
@0xAhmed
0xAhmed / build-arg-results.txt
Last active December 29, 2016 09:05
Docker build: Using ARG
Sending build context to Docker daemon 1.2 MB
Step 1 : FROM busybox
---> 1efc1d465fd6
Step 2 : ARG app_version
---> Running in 94d310838e79
---> 576425d2c33e
Removing intermediate container 94d310838e79
Step 3 : RUN echo “Building $app_version”
---> Running in 7683d34558d1
“Building 1.0”
@0xAhmed
0xAhmed / Dockerfile
Created December 29, 2016 08:47
Dockerfile: Using ARG
FROM busybox
ARG app_version
RUN echo “Building $app_version”