gpongracz commented on pull request #8621:
URL: https://github.com/apache/airflow/pull/8621#issuecomment-623185001


   Looks like the entrypoint.sh is not doing an initdb or upgradedb prior to 
the command like is found in puckel
   
https://github.com/puckel/docker-airflow/blob/master/script/entrypoint.sh#L110
   I think that the puckel entrypoint script is very elegant and may help 
inform design of this one...
   In the mean time I have written a docker-compose for a local executor 
definition that overcomes this by setting restart to on-failure and starting a 
container which runs an initdb which then stops after successfully completing - 
a bit of a cludge but it gets the current image working...
   This is certainly not a production script but it works with the current image
   I've commented out a couple of optional mounts for dags and in my case aws 
keys
   If a feature similar to the puckel entrypoint above is developed then the 
webserver and scheduler definitions in the following docker-compose could be 
collapsed into a single container
   
   **_docker-compose.yml (working example mitigating for entrypoint.sh lacking 
initdb)_**
   version: '3.7'
   services:
       postgres:
           image: postgres:10
           restart: on-failure
           environment:
               - POSTGRES_USER=airflow
               - POSTGRES_PASSWORD=airflow
               - POSTGRES_DB=airflow
           logging:
               options:
                   max-size: 10m
                   max-file: "3"
           ports:
               - "5432:5432"
       initdb:
           image: apache/airflow:latest
           restart: on-failure
           depends_on:
               - postgres
           environment:
               - 
AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres:5432/airflow
               - AIRFLOW__CORE__EXECUTOR=LocalExecutor
           logging:
               options:
                   max-size: 10m
                   max-file: "3"
           command: initdb
       webserver:
           image: apache/airflow:latest
           restart: on-failure
           depends_on:
               - postgres
           environment:
               - 
AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres:5432/airflow
               - AIRFLOW__CORE__LOAD_EXAMPLES=True
               - AIRFLOW__CORE__EXECUTOR=LocalExecutor
               - AIRFLOW__WEBSERVER__BASE_URL=http://localhost:8080
           logging:
               options:
                   max-size: 10m
                   max-file: "3"
   #        volumes:
   #            - ./dags:/opt/airflow/dags
   #            - ~/.aws:/home/airflow/.aws
           ports:
               - "8080:8080"
           command: webserver
       scheduler:
           image: apache/airflow:latest
           restart: on-failure
           depends_on:
               - postgres
           environment:
               - 
AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres:5432/airflow
               - AIRFLOW__CORE__LOAD_EXAMPLES=True
               - AIRFLOW__CORE__EXECUTOR=LocalExecutor
               - AIRFLOW__WEBSERVER__BASE_URL=http://localhost:8080
           logging:
               options:
                   max-size: 10m
                   max-file: "3"
   #        volumes:
   #            - ./dags:/opt/airflow/dags
   #            - ~/.aws:/home/airflow/.aws
           command: scheduler


----------------------------------------------------------------
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:
us...@infra.apache.org


Reply via email to