mik-laj commented on a change in pull request #11176:
URL: https://github.com/apache/airflow/pull/11176#discussion_r496714351



##########
File path: IMAGES.rst
##########
@@ -255,15 +255,87 @@ The image is primarily optimised for size of the final 
image, but also for speed
 It first pre-installs them from the right github branch and only after that 
final airflow installation is
 done from either local sources or remote location (PIP or github repository).
 
-Manually building the images
-----------------------------
+Customizing the image
+.....................
 
+Customizing the image is an alternative way of adding your own dependencies to 
the image.
+
+The easiest way to build the image image is to use ``breeze`` script, but you 
can also build such customized
+image by running appropriately crafted docker build in which you specify all 
the ``build-args``
+that you need to add to customize it. You can read about all the args and ways 
you can build the image
+in the `<#ci-image-build-arguments>`_ chapter below.
+
+Here just a few examples are presented which should give you general 
understanding of what you can customize.
+
+This builds the production image in version 3.7 with additional airflow extras 
from 1.10.10 Pypi package and
+additional apt dev and runtime dependencies.
+
+.. code-block:: bash
+
+  docker build . -f Dockerfile.ci \
+    --build-arg PYTHON_BASE_IMAGE="python:3.7-slim-buster" \
+    --build-arg PYTHON_MAJOR_MINOR_VERSION=3.7 \
+    --build-arg AIRFLOW_INSTALL_SOURCES="apache-airflow" \
+    --build-arg AIRFLOW_INSTALL_VERSION="==1.10.12" \
+    --build-arg AIRFLOW_CONSTRAINTS_REFERENCE="constraints-1-10" \
+    --build-arg AIRFLOW_SOURCES_FROM="empty" \
+    --build-arg AIRFLOW_SOURCES_TO="/empty" \
+    --build-arg ADDITIONAL_AIRFLOW_EXTRAS="jdbc"
+    --build-arg ADDITIONAL_PYTHON_DEPS="pandas"
+    --build-arg ADDITIONAL_DEV_APT_DEPS="gcc g++"
+    --build-arg ADDITIONAL_RUNTIME_APT_DEPS="default-jre-headless"
+    --tag my-image
+
+
+the same image can be built using ``breeze`` (it supports auto-completion of 
the options):
+
+.. code-block:: bash
+
+  ./breeze build-image -f Dockerfile.ci \
+      --production-image  --python 3.7 --install-airflow-version=1.10.12 \
+      --additional-extras=jdbc --additional-python-deps="pandas" \
+      --additional-dev-apt-deps="gcc g++" 
--additional-runtime-apt-deps="default-jre-headless"
 You can build the default production image with standard ``docker build`` 
command but they will only build
 default versions of the image and will not use the dockerhub versions of 
images as cache.
 
 
-CI images
-.........
+You can customize more aspects of the image - such as additional commands 
executed before apt dependencies
+are installed, or adding extra sources to install your dependencies from. You 
can see all the arguments
+described below but here is an example of rather complex command to customize 
the image
+based on example in `this comment 
<https://github.com/apache/airflow/issues/8605#issuecomment-690065621>`_:
+
+.. code-block:: bash
+
+  docker build . -f Dockerfile.ci \
+    --build-arg PYTHON_BASE_IMAGE="python:3.7-slim-buster" \
+    --build-arg PYTHON_MAJOR_MINOR_VERSION=3.7 \
+    --build-arg AIRFLOW_INSTALL_SOURCES="apache-airflow" \
+    --build-arg AIRFLOW_INSTALL_VERSION="==1.10.12" \
+    --build-arg AIRFLOW_CONSTRAINTS_REFERENCE="constraints-1-10" \
+    --build-arg AIRFLOW_SOURCES_FROM="empty" \
+    --build-arg AIRFLOW_SOURCES_TO="/empty" \
+    --build-arg ADDITIONAL_AIRFLOW_EXTRAS="slack" \
+    --build-arg ADDITIONAL_PYTHON_DEPS="apache-airflow-backport-providers-odbc 
\
+        apache-airflow-backport-providers-odbc \

Review comment:
       ```suggestion
   ```
   It is duplicated.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to