potiuk commented on a change in pull request #4543: [AIRFLOW-3718] [WIP/SPLIT] Multi-layered version of the docker image URL: https://github.com/apache/airflow/pull/4543#discussion_r267796998
########## File path: BREEZE.md ########## @@ -0,0 +1,356 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you 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. +--> + +<p align="center"> + <img src="images/AirflowBreeze_logo.png" alt="Airflow Breeze Logo"/> +</p> + +# Table of Contents + + * [Airflow Breeze](#airflow-breeze) + * [Installation](#installation) + * [Entering the environment](#entering-the-environment) + * [Updating dependencies](#updating-dependencies) + * [Forwarded ports](#forwarded-ports) + * [Running tests](#running-tests) + * [Automating test execution](#automating-test-execution) + * [Running commands inside docker](#running-commands-inside-docker) + * [Convenience scripts](#convenience-scripts) + * [Breeze flags](#breeze-flags) + +# Airflow Breeze + +Airflow has an easy-to-use integration test environment managed via +[Docker Compose](https://docs.docker.com/compose/) and used by Airflow's CI Travis tests. + +It's called **Airflow Breeze** as in "It's a breeze to develop with Airflow" + +The advantages and disadvantages of using the environment vs. other ways of testing Airflow +are described in [CONTRIBUTING.md](CONTRIBUTING.md#integration-test-development-environment). + +# Installation + +Prerequisites for the installation: + +* If you are on MacOS you need gnu getopt to get Airflow Breeze running. Typically + uou need to run `brew install gnu-getopt` and then follow instructions (you need + to link the gnu getopt version to become first on the PATH). + +* Latest stable Docker Community Edition installed and on the PATH. It should be + configured to be able to run `docker` commands directly and not only via root user + - your user should be in `docker` group. + See [Docker installation guide](https://docs.docker.com/install/) + +* Latest stable Docker Compose installed and on the PATH. It should be + configured to be able to run `docker-compose` command. + See [Docker compose installation guide](https://docs.docker.com/compose/install/) + +* npm locally installed in case you want to test webserver and want to test `airflow webserver`. + If you do not have npm, then you have to manully run `npm install && npm run prod` in Review comment: OK. I changed it in the latest push in https://github.com/apache/airflow/pull/4932 I fixed it in the way that npm install && npm run prod are run inside the container when you enter it - in case when the "node_modules" and "dist" folders do not exist (i.e. when the sources are mounted from the host and npm was never run on the host). I think that should cover the most common use case for development and this way we avoid the case that modules/prepared .js files are missing. The user will still be able to run "npm install && run prod inside the container" manually (or even outside!). ---------------------------------------------------------------- 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] With regards, Apache Git Services
