diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..c35b212
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,148 @@
+# Copyright 2019-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ARG PYTHON_BASE_IMAGE="python:3.6-slim"
+
+FROM ${PYTHON_BASE_IMAGE}
+
+# Label image
+ARG org_label_schema_schema_version=1.0
+ARG org_label_schema_name=cord-workflow-airflow
+ARG org_label_schema_version=unknown
+ARG org_label_schema_vcs_url=unknown
+ARG org_label_schema_vcs_ref=unknown
+ARG org_label_schema_build_date=unknown
+ARG org_opencord_vcs_commit_date=unknown
+
+LABEL org.label-schema.schema-version=$org_label_schema_schema_version \
+      org.label-schema.name=$org_label_schema_name \
+      org.label-schema.version=$org_label_schema_version \
+      org.label-schema.vcs-url=$org_label_schema_vcs_url \
+      org.label-schema.vcs-ref=$org_label_schema_vcs_ref \
+      org.label-schema.build-date=$org_label_schema_build_date \
+      org.opencord.vcs-commit-date=$org_opencord_vcs_commit_date
+
+
+SHELL ["/bin/bash", "-o", "pipefail", "-e", "-u", "-x", "-c"]
+
+# Make sure noninteractie debian install is used and language variables set
+ENV DEBIAN_FRONTEND=noninteractive LANGUAGE=C.UTF-8 LANG=C.UTF-8 LC_ALL=C.UTF-8 \
+    LC_CTYPE=C.UTF-8 LC_MESSAGES=C.UTF-8 TERM=linux
+
+# Airflow
+ARG AIRFLOW_VERSION=1.10.2
+ARG AIRFLOW_USER=airflow
+ENV AIRFLOW_USER=${AIRFLOW_USER}
+
+ARG HOME=/home/airflow
+ENV HOME=${HOME}
+
+ARG AIRFLOW_HOME=${HOME}/airflow
+ENV AIRFLOW_HOME=${AIRFLOW_HOME}
+
+
+RUN apt-get update -y --no-install-recommends \
+    && apt-get install -y --no-install-recommends \
+        curl \
+        apt-utils \
+        build-essential \
+        curl \
+        freetds-bin \
+        freetds-dev \
+        libffi-dev \
+        libkrb5-dev \
+        libpq-dev \
+        libsasl2-2 \
+        libsasl2-dev \
+        libsasl2-modules \
+        libssl-dev \
+        locales  \
+        netcat \
+        rsync \
+        sasl2-bin \
+        sudo \
+        default-libmysqlclient-dev \
+        krb5-user \
+        net-tools \
+        tmux \
+        unzip \
+        vim \
+    && apt-get autoremove -yqq --purge \
+    && apt-get clean \
+    && rm -rf /var/lib/apt/lists/*
+
+ENV SLUGIFY_USES_TEXT_UNIDECODE=yes
+RUN pip install -U pip setuptools wheel \
+    && pip install pytz \
+    && pip install pyOpenSSL \
+    && pip install ndg-httpsclient \
+    && pip install pyasn1 \
+    && pip install apache-airflow[postgres]==${AIRFLOW_VERSION}
+
+RUN useradd -m ${AIRFLOW_USER} \
+    && echo "${AIRFLOW_USER} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/airflow \
+    && chmod 0440 /etc/sudoers.d/airflow \
+    && chown -R ${AIRFLOW_USER}:${AIRFLOW_USER} ${HOME}
+
+RUN mkdir -pv ${AIRFLOW_HOME} \
+    && chown -R ${AIRFLOW_USER}:${AIRFLOW_USER} ${AIRFLOW_HOME}
+
+COPY ./docker/script/entrypoint.sh ${AIRFLOW_HOME}/entrypoint.sh
+COPY ./docker/config/airflow.cfg ${AIRFLOW_HOME}/airflow.cfg
+
+# CORD Workflow
+RUN pip install multistructlog~=2.1.0 \
+    && pip install cord-workflow-controller-client~=0.3.0 \
+    && pip install pyfiglet~=0.7 \
+    && pip install xossynchronizer~=3.2.6 \
+    && pip install xosapi~=3.2.6
+
+# drop plugin code to plugin dir of airflow
+COPY ./src/cord_workflow_airflow_extensions/cord_workflow_plugin.py ${AIRFLOW_HOME}/plugins/cord_workflow_plugin.py
+
+# drop sample workflow code to dags dir of airflow
+COPY ./workflow_examples/simple-cord-workflow/simple_cord_workflow.py ${AIRFLOW_HOME}/dags/simple_cord_workflow.py
+COPY ./workflow_examples/simple-cord-workflow/simple_cord_workflow_essence.json ${HOME}/simple_cord_workflow_essence.json
+COPY ./workflow_examples/simple-airflow-workflow/simple_airflow_workflow.py ${AIRFLOW_HOME}/dags/simple_airflow_workflow.py
+COPY ./workflow_examples/simple-airflow-workflow/simple_airflow_workflow_essence.json ${HOME}/simple_airflow_workflow_essence.json
+
+# copy scripts
+COPY ./workflow_examples/connection_setup.sh ${HOME}/connection_setup.sh
+COPY ./workflow_examples/register_essence.sh ${HOME}/register_essence.sh
+COPY ./workflow_examples/emit_events_model.sh ${HOME}/emit_events_model.sh
+COPY ./workflow_examples/emit_events_onu.sh ${HOME}/emit_events_onu.sh
+
+# copy kickstarter code & workflow ctl code
+COPY ./src/tools/kickstarter.py ${HOME}/kickstarter.py
+COPY ./src/tools/workflow_ctl.py ${HOME}/workflow_ctl.py
+
+# copy configuration json
+COPY ./src/tools/config.json /etc/cord_workflow_airflow_extensions/config.json
+
+RUN chown -R ${AIRFLOW_USER}:${AIRFLOW_USER} ${HOME} \
+    && chmod 755 ${HOME}/connection_setup.sh \
+    && chmod 755 ${HOME}/register_essence.sh \
+    && chmod 755 ${HOME}/emit_events_model.sh \
+    && chmod 755 ${HOME}/emit_events_onu.sh \
+    && chmod 755 ${HOME}/kickstarter.py \
+    && chmod 755 ${HOME}/workflow_ctl.py
+
+# 8080 for webserver (admin_ui)
+# 8793 for worker log
+EXPOSE 8080 8793
+
+USER ${AIRFLOW_USER}
+WORKDIR ${HOME}
+
+ENTRYPOINT ["/home/airflow/airflow/entrypoint.sh"]
