This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new ecc5b74 Stronger language about Docker Compose customizability
(#22304)
ecc5b74 is described below
commit ecc5b74528ed7e4ecf05c526feb2c0c85f463429
Author: Jarek Potiuk <[email protected]>
AuthorDate: Fri Mar 18 00:34:33 2022 +0100
Stronger language about Docker Compose customizability (#22304)
* Stronger language about Docker Compose customizability
Despite our warnings, our users continue treating the Docker
Compose that we exposed as something that should be easy to
extend and customize for their own needs, yet they continue
to struggle with some basic behaviour of containers, Docker Compose
and how they interact. This results in vast space of potential
problems as Docker Compose gives the user a false premise of
something that "just works" where it requires quite a deep
understanding on how it works.
When you get things wrong with Docker Compose, you often end up
with extremely confusing messages, that might suggest that the
problem is with Airflow, but really the problem is with how users
interact with their custom Docker images, registries, pulling,
networking, mounting volumes and plenty other things.
While this is the same with Kubernetes and Helm Chart, Helm Chart makes
it infinitely easier to customize in declarative way (this is what
our values.yaml does) and anything that has not been foreseen by Helm
Chart developers is "hard" by definition.
Docker Compose makes no such distinction. You really can't make Docker
Compose customizable by configuration, and any customization in it
requires modifying the compose file and for people who do not know
what they are doing will eventually lead to errors that they are not
able to diagnose and leads to creation of "Airlfow isssues", where they
should be brought to "Docker Compose" issues.
Example of that is here: https://github.com/apache/airflow/discussions/22301
where there are at least two issues that are not reproducible without
knowing in detail what the user has done, how the image was build
and distributed, and how the docker-compose installation interacted
with them. This leads to a terrible distraction for supporting
users of Airflow as the issues are really Docker Compose issues and
Airflow maintainers should not be involved in solving those.
This PR adds a bit stronger language and statement about the scope
and customizability of the Quick Start Docker Compose of ours. Not
only mentioning "Lack of Production Readiness" but also the
responsibility of the user to understand and diagnose docker compose
errors on their own and setting expectations that issues with Docker
Compose running should be directed elsewhere.
* Update docs/apache-airflow/start/docker.rst
* Update docs/apache-airflow/start/docker.rst
Co-authored-by: Daniel Standish
<[email protected]>
* Update docs/apache-airflow/start/docker.rst
Co-authored-by: Daniel Standish
<[email protected]>
Co-authored-by: Daniel Standish
<[email protected]>
---
docs/apache-airflow/start/docker.rst | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/docs/apache-airflow/start/docker.rst
b/docs/apache-airflow/start/docker.rst
index fbab8ff..305415d 100644
--- a/docs/apache-airflow/start/docker.rst
+++ b/docs/apache-airflow/start/docker.rst
@@ -20,7 +20,27 @@
Running Airflow in Docker
#########################
-This quick-start guide will allow you to quickly start Airflow with
:doc:`CeleryExecutor </executor/celery>` in Docker. This is the fastest way to
start Airflow.
+This quick-start guide will allow you to quickly get Airflow up and running
with :doc:`CeleryExecutor </executor/celery>` in Docker. For running airflow
in production, we recommend running on kubernetes with the official helm chart.
+
+Customizing the quick-start Docker Compose
+==========================================
+
+DO NOT attempt to customize images and the Docker Compose if you do not know
exactly what you are doing,
+do not know Docker Compose, or are not prepared to debug and resolve problems
on your own. If you do not
+know Docker Compose and expect Airflow to **just work** beyond following
precisely the quick-start,
+then please use other ways of running Airflow - for example
:doc:`/start/local` for testing and trying
+and :doc:`Official Airflow Community Helm Chart<helm-chart:index>` for
production purposes.
+
+Even if many users think of Docker Compose as "ready to use", it is really a
developer tool, that requires
+the user to know very well how docker images, containers, docker compose
networking, volumes, naming, image
+building works. It is extremely easy to make mistakes that lead to difficult
to diagnose problems and if
+you are not ready to spend your own time on learning and diagnosing and
resolving those problems on your own
+do not follow this path. You have been warned.
+
+If you customize, or modify images, the compose file and see problem do not
expect you will get a lot of
+help with solving those problems in the Airflow support channels. Most of the
problems you will experience
+are Docker Compose related problems and if you need help in solving them,
there are dedicated channels in
+`Docker Compose <https://github.com/docker/compose>`_ that you can use.
Production readiness
====================