Dockerfile Example: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 22: | Line 22: | ||
LABEL version="1.0" \ | LABEL version="1.0" \ | ||
description="A project that creates a custom Docker image based on a BusyBox base image" | description="A project that creates a custom Docker image based on a BusyBox base image" | ||
# | # | ||
# Define two environment variables: NAME and TARGET_DIR | # Define two environment variables: NAME and TARGET_DIR | ||
Line 29: | Line 29: | ||
ENV NAME="NovaOrdis OpenShift Test Environment" \ | ENV NAME="NovaOrdis OpenShift Test Environment" \ | ||
TARGET_DIR="/var/novaordis" | TARGET_DIR="/var/novaordis" | ||
# | # | ||
# Docker is to execute all subsequent commands in this file as BusyBox's root user | # Docker is to execute all subsequent commands in this file as BusyBox's root user | ||
# | # | ||
USER root | USER root | ||
# | # | ||
# /usr/local/bin/ is included in the root user's $PATH, so copy our shell script to this directory | # /usr/local/bin/ is included in the root user's $PATH, so copy our shell script to this directory | ||
# | # | ||
COPY run-loop.sh /usr/local/bin/run-loop.sh | COPY run-loop.sh /usr/local/bin/run-loop.sh | ||
# | # | ||
# Ensure that shell script added to image is set as executable | # Ensure that shell script added to image is set as executable | ||
Line 49: | Line 49: | ||
# to local filesystem at this mount point. | # to local filesystem at this mount point. | ||
# | # | ||
[[Dockerfile#RUN|RUN]] mkdir $TARGET_DIR | |||
VOLUME $TARGET_DIR | [[Dockerfile#VOLUME|VOLUME]] $TARGET_DIR | ||
# | # |
Latest revision as of 01:14, 1 February 2018
Internal
Example
# # Example of very simple Dockerfile based on minimalistic BusyBox base image # Please read through each comment to gain a better understanding of what this Dockerfile does # # # Docker will pull from docker.io if base image does not already exist in local Docker repo # FROM busybox MAINTAINER "Nova Ordis" # # The LABEL instruction adds metadata to an image. A LABEL is a key-value pair. # LABEL version="1.0" \ description="A project that creates a custom Docker image based on a BusyBox base image" # # Define two environment variables: NAME and TARGET_DIR # Value of env variables can be modified at container startup using -e parameter # ENV NAME="NovaOrdis OpenShift Test Environment" \ TARGET_DIR="/var/novaordis" # # Docker is to execute all subsequent commands in this file as BusyBox's root user # USER root # # /usr/local/bin/ is included in the root user's $PATH, so copy our shell script to this directory # COPY run-loop.sh /usr/local/bin/run-loop.sh # # Ensure that shell script added to image is set as executable # RUN chmod 755 /usr/local/bin/run-loop.sh # # Create directory and define it as a container mount point. Our shell script will write output # to local filesystem at this mount point. # RUN mkdir $TARGET_DIR VOLUME $TARGET_DIR # # At startup, this container should run a single command. Our script uses the command line # parameters passed as part of $NAME env var # CMD /usr/local/bin/run-loop.sh $NAME