This is an automated email from the ASF dual-hosted git repository. mneethiraj pushed a commit to branch atlas-2.6 in repository https://gitbox.apache.org/repos/asf/atlas.git
commit 64019e35c9b84940c89fe0b25cbfc6793208cdac Author: Madhan Neethiraj <[email protected]> AuthorDate: Sun Sep 13 11:05:39 2026 -0700 ATLAS-5403: fix docker setup startup failure in atlas-hadoop, atlas-hive containers (#755) --- dev-support/atlas-docker/Dockerfile.atlas-base | 1 + dev-support/atlas-docker/README.md | 4 +-- dev-support/atlas-docker/config/init_postgres.sh | 17 +++++++++++ .../atlas-docker/docker-compose.atlas-common.yml | 12 ++++++++ .../atlas-docker/docker-compose.atlas-hadoop.yml | 2 +- .../atlas-docker/docker-compose.atlas-postgres.yml | 34 ---------------------- 6 files changed, 33 insertions(+), 37 deletions(-) diff --git a/dev-support/atlas-docker/Dockerfile.atlas-base b/dev-support/atlas-docker/Dockerfile.atlas-base index abc2b68d3..e025e86fd 100644 --- a/dev-support/atlas-docker/Dockerfile.atlas-base +++ b/dev-support/atlas-docker/Dockerfile.atlas-base @@ -45,6 +45,7 @@ RUN groupadd atlas && \ useradd -g hadoop -ms /bin/bash kafka && \ mkdir -p /home/atlas/dist && \ mkdir -p /home/atlas/scripts && \ + chmod 755 /home/atlas && \ chown -R atlas:atlas /home/atlas ENTRYPOINT [ "/bin/bash" ] diff --git a/dev-support/atlas-docker/README.md b/dev-support/atlas-docker/README.md index 0be922f07..9e1d97d7e 100644 --- a/dev-support/atlas-docker/README.md +++ b/dev-support/atlas-docker/README.md @@ -68,7 +68,7 @@ Docker files in this folder create docker images and run them to build Apache At ```shell export ATLAS_BACKEND=postgres - docker compose -f docker-compose.atlas.yml -f docker-compose.atlas-postgres.yml up -d --wait + docker compose -f docker-compose.atlas.yml -f docker-compose.atlas-hadoop.yml -f docker-compose.atlas-hbase.yml up -d --wait ``` The Postgres overlay runs `config/init_postgres.sh` as a one-shot initialization service before Atlas starts. @@ -78,7 +78,7 @@ Docker files in this folder create docker images and run them to build Apache At ```shell export ATLAS_BACKEND=hbase - docker compose -f docker-compose.atlas.yml -f docker-compose.atlas-hadoop.yml up -d --wait + docker compose -f docker-compose.atlas.yml -f docker-compose.atlas-hadoop.yml -f docker-compose.atlas-hive.yml up -d --wait ``` Apache Atlas will be installed at /opt/atlas/, and logs are at /var/log/atlas directory. diff --git a/dev-support/atlas-docker/config/init_postgres.sh b/dev-support/atlas-docker/config/init_postgres.sh old mode 100644 new mode 100755 index 8085c336f..bb02407ae --- a/dev-support/atlas-docker/config/init_postgres.sh +++ b/dev-support/atlas-docker/config/init_postgres.sh @@ -103,6 +103,19 @@ EOSQL "${psql_cmd[@]}" --dbname "${database_name}" -c "GRANT ALL ON SCHEMA public TO public;" } + +# Start the normal PostgreSQL entrypoint in background +docker-entrypoint.sh postgres & +pg_pid=$! + +# Wait until PostgreSQL is ready +until pg_isready -U "${POSTGRES_USER:-postgres}" -d "${POSTGRES_DB:-postgres}"; do + sleep 1 +done + +echo "PostgreSQL is ready" + + create_role hive "${HIVE_DB_PASSWORD}" create_database hive hive @@ -110,3 +123,7 @@ create_role atlas "${ATLAS_DB_PASSWORD}" create_database atlas atlas PGPASSWORD="${ATLAS_DB_PASSWORD}" "${atlas_psql_cmd[@]}" --file "${ATLAS_SCHEMA_FILE}" + + +# Keep postgres as the container's main process +wait "$pg_pid" diff --git a/dev-support/atlas-docker/docker-compose.atlas-common.yml b/dev-support/atlas-docker/docker-compose.atlas-common.yml index 15375cd2a..cd5159ab6 100644 --- a/dev-support/atlas-docker/docker-compose.atlas-common.yml +++ b/dev-support/atlas-docker/docker-compose.atlas-common.yml @@ -53,7 +53,19 @@ services: networks: - atlas environment: + POSTGRES_HOST: atlas-db + POSTGRES_PORT: 5432 + POSTGRES_USER: postgres + POSTGRES_DB: postgres POSTGRES_PASSWORD: atlasR0cks! + HIVE_DB_PASSWORD: atlasR0cks! + ATLAS_DB_PASSWORD: atlasR0cks! + ATLAS_SCHEMA_FILE: /tmp/create_schema.sql + volumes: + - ./config/init_postgres.sh:/tmp/init_postgres.sh:ro + - ../../graphdb/janusgraph-rdbms/src/main/resources/META-INF/postgres/create_schema.sql:/tmp/create_schema.sql:ro + command: + - /tmp/init_postgres.sh healthcheck: test: 'su -c "pg_isready -q" postgres' interval: 30s diff --git a/dev-support/atlas-docker/docker-compose.atlas-hadoop.yml b/dev-support/atlas-docker/docker-compose.atlas-hadoop.yml index a6880fc22..4a82d2d52 100644 --- a/dev-support/atlas-docker/docker-compose.atlas-hadoop.yml +++ b/dev-support/atlas-docker/docker-compose.atlas-hadoop.yml @@ -16,7 +16,7 @@ services: - "9000:9000" - "8088:8088" healthcheck: - test: [ "CMD-SHELL", "su hdfs -c \"/opt/hadoop/bin/hdfs dfsadmin -report | grep -q 'Live datanodes'\"" ] + test: [ "CMD-SHELL", "su hdfs -c \"/opt/hadoop/bin/hdfs dfs -stat /tmp/hive\"" ] interval: 30s timeout: 10s retries: 30 diff --git a/dev-support/atlas-docker/docker-compose.atlas-postgres.yml b/dev-support/atlas-docker/docker-compose.atlas-postgres.yml deleted file mode 100644 index 05fe13225..000000000 --- a/dev-support/atlas-docker/docker-compose.atlas-postgres.yml +++ /dev/null @@ -1,34 +0,0 @@ -services: - atlas: - depends_on: - atlas-db-init: - condition: service_completed_successfully - - atlas-db-init: - image: postgres:13.21 - container_name: atlas-db-init - hostname: atlas-db-init.example.com - networks: - - atlas - depends_on: - atlas-backend: - condition: service_healthy - environment: - POSTGRES_HOST: atlas-db - POSTGRES_PORT: 5432 - POSTGRES_USER: postgres - POSTGRES_DB: postgres - POSTGRES_PASSWORD: atlasR0cks! - HIVE_DB_PASSWORD: atlasR0cks! - ATLAS_DB_PASSWORD: atlasR0cks! - ATLAS_SCHEMA_FILE: /tmp/create_schema.sql - volumes: - - ./config/init_postgres.sh:/tmp/init_postgres.sh:ro - - ../../graphdb/janusgraph-rdbms/src/main/resources/META-INF/postgres/create_schema.sql:/tmp/create_schema.sql:ro - command: - - /bin/bash - - /tmp/init_postgres.sh - -networks: - atlas: - name: atlasnw
