This is an automated email from the ASF dual-hosted git repository.
yufei pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new 0eafcaa46 Fix quickstart doc with docker compose (#1610)
0eafcaa46 is described below
commit 0eafcaa4678d85ce9358ba544c02e231b8797eb3
Author: MonkeyCanCode <[email protected]>
AuthorDate: Fri May 23 00:43:33 2025 -0500
Fix quickstart doc with docker compose (#1610)
---
.../assets/postgres/docker-compose-postgres.yml | 2 +-
getting-started/eclipselink/README.md | 7 +++-
.../eclipselink/docker-compose-bootstrap-db.yml | 4 +--
getting-started/eclipselink/docker-compose.yml | 10 +++---
getting-started/jdbc/README.md | 1 +
getting-started/jdbc/docker-compose.yml | 4 +--
.../deploying-polaris/quickstart-deploy-aws.md | 2 ++
.../deploying-polaris/quickstart-deploy-azure.md | 2 ++
.../deploying-polaris/quickstart-deploy-gcp.md | 2 ++
.../unreleased/getting-started/quickstart.md | 41 +++++++++++-----------
.../unreleased/getting-started/using-polaris.md | 16 ++++++---
11 files changed, 55 insertions(+), 36 deletions(-)
diff --git a/getting-started/assets/postgres/docker-compose-postgres.yml
b/getting-started/assets/postgres/docker-compose-postgres.yml
index 393f59fb6..2684b141a 100644
--- a/getting-started/assets/postgres/docker-compose-postgres.yml
+++ b/getting-started/assets/postgres/docker-compose-postgres.yml
@@ -32,7 +32,7 @@ services:
volumes:
# Bind local conf file to a convenient location in the container
- type: bind
- source: ../assets/postgres/postgresql.conf
+ source: ${ASSETS_PATH}/postgres/postgresql.conf
target: /etc/postgresql/postgresql.conf
command:
- "postgres"
diff --git a/getting-started/eclipselink/README.md
b/getting-started/eclipselink/README.md
index aaeac6371..ed5e5be3f 100644
--- a/getting-started/eclipselink/README.md
+++ b/getting-started/eclipselink/README.md
@@ -37,7 +37,12 @@ This example requires `jq` to be installed on your machine.
2. Start the docker compose group by running the following command from the
root of the repository:
```shell
- docker compose -f
getting-started/eclipselink/docker-compose-bootstrap-db.yml -f
getting-started/assets/postgres/docker-compose-postgres.yml -f
getting-started/eclipselink/docker-compose.yml up
+ export ASSETS_PATH=$(pwd)/getting-started/assets/
+ export CLIENT_ID=root
+ export CLIENT_SECRET=s3cr3t
+ docker compose -p polaris -f
getting-started/assets/postgres/docker-compose-postgres.yml \
+ -f getting-started/eclipselink/docker-compose-bootstrap-db.yml \
+ -f getting-started/eclipselink/docker-compose.yml up
```
3. Using spark-sql: attach to the running spark-sql container:
diff --git a/getting-started/eclipselink/docker-compose-bootstrap-db.yml
b/getting-started/eclipselink/docker-compose-bootstrap-db.yml
index 5861f5916..7edc91fad 100644
--- a/getting-started/eclipselink/docker-compose-bootstrap-db.yml
+++ b/getting-started/eclipselink/docker-compose-bootstrap-db.yml
@@ -25,11 +25,11 @@ services:
polaris.persistence.type: eclipse-link
polaris.persistence.eclipselink.configuration-file:
/deployments/config/eclipselink/persistence.xml
volumes:
- - ../assets/eclipselink/:/deployments/config/eclipselink
+ - ${ASSETS_PATH}/eclipselink/:/deployments/config/eclipselink
command:
- "bootstrap"
- "--realm=POLARIS"
- - "--credential=POLARIS,root,s3cr3t"
+ - "--credential=POLARIS,${CLIENT_ID},${CLIENT_SECRET}"
polaris:
depends_on:
polaris-bootstrap:
diff --git a/getting-started/eclipselink/docker-compose.yml
b/getting-started/eclipselink/docker-compose.yml
index 06f6b3c63..00e53979d 100644
--- a/getting-started/eclipselink/docker-compose.yml
+++ b/getting-started/eclipselink/docker-compose.yml
@@ -41,7 +41,7 @@ services:
polaris.features."SUPPORTED_CATALOG_STORAGE_TYPES":
"[\"FILE\",\"S3\",\"GCS\",\"AZURE\"]"
polaris.readiness.ignore-severe-issues: "true"
volumes:
- - ../assets/eclipselink/:/deployments/config/eclipselink
+ - ${ASSETS_PATH}/eclipselink/:/deployments/config/eclipselink
healthcheck:
test: ["CMD", "curl", "http://localhost:8182/q/health"]
interval: 2s
@@ -61,7 +61,7 @@ services:
- CLIENT_ID=${CLIENT_ID}
- CLIENT_SECRET=${CLIENT_SECRET}
volumes:
- - ../assets/polaris/:/polaris
+ - ${ASSETS_PATH}/polaris/:/polaris
entrypoint: '/bin/sh -c "chmod +x /polaris/create-catalog.sh &&
/polaris/create-catalog.sh"'
spark-sql:
@@ -98,11 +98,11 @@ services:
polaris-setup:
condition: service_completed_successfully
environment:
- - CLIENT_ID=${CLIENT_ID}
- - CLIENT_SECRET=${CLIENT_SECRET}
+ - CLIENT_ID=${USER_CLIENT_ID}
+ - CLIENT_SECRET=${USER_CLIENT_SECRET}
stdin_open: true
tty: true
ports:
- "8080:8080"
volumes:
- - ../assets/trino-config/catalog:/etc/trino/catalog
+ - ${ASSETS_PATH}/trino-config/catalog:/etc/trino/catalog
diff --git a/getting-started/jdbc/README.md b/getting-started/jdbc/README.md
index f923ebc72..0d562094c 100644
--- a/getting-started/jdbc/README.md
+++ b/getting-started/jdbc/README.md
@@ -40,6 +40,7 @@ This example requires `jq` to be installed on your machine.
export QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://postgres:5432/POLARIS
export QUARKUS_DATASOURCE_USERNAME=postgres
export QUARKUS_DATASOURCE_PASSWORD=postgres
+ export ASSETS_PATH=$(pwd)/getting-started/assets/
export CLIENT_ID=root
export CLIENT_SECRET=s3cr3t
docker compose -f getting-started/jdbc/docker-compose-bootstrap-db.yml -f
getting-started/assets/postgres/docker-compose-postgres.yml -f
getting-started/jdbc/docker-compose.yml up
diff --git a/getting-started/jdbc/docker-compose.yml
b/getting-started/jdbc/docker-compose.yml
index 67e8f9757..832e0ac62 100644
--- a/getting-started/jdbc/docker-compose.yml
+++ b/getting-started/jdbc/docker-compose.yml
@@ -64,7 +64,7 @@ services:
- CLIENT_ID=${CLIENT_ID}
- CLIENT_SECRET=${CLIENT_SECRET}
volumes:
- - ../assets/polaris/:/polaris
+ - ${ASSETS_PATH}/polaris/:/polaris
entrypoint: '/bin/sh -c "chmod +x /polaris/create-catalog.sh &&
/polaris/create-catalog.sh"'
spark-sql:
@@ -108,4 +108,4 @@ services:
- CLIENT_ID=${CLIENT_ID}
- CLIENT_SECRET=${CLIENT_SECRET}
volumes:
- - ../assets/trino-config/catalog:/etc/trino/catalog
+ - ${ASSETS_PATH}/trino-config/catalog:/etc/trino/catalog
diff --git
a/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-aws.md
b/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-aws.md
index 7425c6e34..8754408c8 100644
---
a/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-aws.md
+++
b/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-aws.md
@@ -37,6 +37,7 @@ The requirements to run the script below are:
```shell
chmod +x getting-started/assets/cloud_providers/deploy-aws.sh
+export ASSETS_PATH=$(pwd)/getting-started/assets/
./getting-started/assets/cloud_providers/deploy-aws.sh
```
@@ -50,6 +51,7 @@ export CLIENT_SECRET=s3cr3t
To shut down the Polaris server, run the following commands:
```shell
+export ASSETS_PATH=$(pwd)/getting-started/assets/
docker compose -f getting-started/eclipselink/docker-compose.yml down
```
diff --git
a/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-azure.md
b/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-azure.md
index f8b75de79..53ab57a9a 100644
---
a/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-azure.md
+++
b/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-azure.md
@@ -32,6 +32,7 @@ The requirements to run the script below are:
```shell
chmod +x getting-started/assets/cloud_providers/deploy-azure.sh
+export ASSETS_PATH=$(pwd)/getting-started/assets/
./getting-started/assets/cloud_providers/deploy-azure.sh
```
@@ -45,6 +46,7 @@ export CLIENT_SECRET=s3cr3t
To shut down the Polaris server, run the following commands:
```shell
+export ASSETS_PATH=$(pwd)/getting-started/assets/
docker compose -f getting-started/eclipselink/docker-compose.yml down
```
diff --git
a/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-gcp.md
b/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-gcp.md
index 86ec4a89f..d76d82b74 100644
---
a/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-gcp.md
+++
b/site/content/in-dev/unreleased/getting-started/deploying-polaris/quickstart-deploy-gcp.md
@@ -32,6 +32,7 @@ The requirements to run the script below are:
```shell
chmod +x getting-started/assets/cloud_providers/deploy-gcp.sh
+export ASSETS_PATH=$(pwd)/getting-started/assets/
./getting-started/assets/cloud_providers/deploy-gcp.sh
```
@@ -45,6 +46,7 @@ export CLIENT_SECRET=s3cr3t
To shut down the Polaris server, run the following commands:
```shell
+export ASSETS_PATH=$(pwd)/getting-started/assets/
docker compose -f getting-started/eclipselink/docker-compose.yml down
```
diff --git a/site/content/in-dev/unreleased/getting-started/quickstart.md
b/site/content/in-dev/unreleased/getting-started/quickstart.md
index e04f71cd7..d59d76ac7 100644
--- a/site/content/in-dev/unreleased/getting-started/quickstart.md
+++ b/site/content/in-dev/unreleased/getting-started/quickstart.md
@@ -24,10 +24,10 @@ weight: 200
Polaris can be deployed via a docker image or as a standalone process. Before
starting, be sure that you've satisfied the relevant prerequisites detailed in
the previous page.
-## Docker Image
-
-To start using Polaris in Docker, build and launch Polaris, which is packaged
with a Postgres instance, Apache Spark, and Trino.
+## Common Setup
+Before running Polaris, ensure you have completed the following setup steps:
+1. **Build Polaris**
```shell
cd ~/polaris
./gradlew \
@@ -36,7 +36,20 @@ cd ~/polaris
:polaris-quarkus-admin:assemble --rerun \
-Dquarkus.container-image.tag=postgres-latest \
-Dquarkus.container-image.build=true
-docker compose -f getting-started/eclipselink/docker-compose-postgres.yml -f
getting-started/eclipselink/docker-compose-bootstrap-db.yml -f
getting-started/eclipselink/docker-compose.yml up
+```
+- **For standalone**: Omit the `-Dquarkus.container-image.tag` and
`-Dquarkus.container-image.build` options if you do not need to build a Docker
image.
+
+## Running Polaris with Docker
+
+To start using Polaris in Docker and launch Polaris, which is packaged with a
Postgres instance, Apache Spark, and Trino.
+
+```shell
+export ASSETS_PATH=$(pwd)/getting-started/assets/
+export CLIENT_ID=root
+export CLIENT_SECRET=s3cr3t
+docker compose -p polaris -f
getting-started/assets/postgres/docker-compose-postgres.yml \
+ -f getting-started/eclipselink/docker-compose-bootstrap-db.yml \
+ -f getting-started/eclipselink/docker-compose.yml up
```
You should see output for some time as Polaris, Spark, and Trino build and
start up. Eventually, you won’t see any more logs and see some logs relating to
Spark, resembling the following:
@@ -48,24 +61,17 @@ spark-sql-1 | 25/04/04 05:39:38 WARN
SparkSQLCLIDriver: WARNING: Direct
spark-sql-1 | 25/04/04 05:39:39 WARN RESTSessionCatalog: Iceberg REST
client is missing the OAuth2 server URI configuration and defaults to
http://polaris:8181/api/catalogv1/oauth/tokens. This automatic fallback will be
removed in a future Iceberg release.It is recommended to configure the OAuth2
endpoint using the 'oauth2-server-uri' property to be prepared. This warning
will disappear if the OAuth2 endpoint is explicitly configured. See
https://github.com/apache/iceberg/issues/10537
```
-Finally, set the following static credentials for interacting with the Polaris
server in the following exercises:
-
-```shell
-export CLIENT_ID=root
-export CLIENT_SECRET=s3cr3t
-```
-
The Docker image pre-configures a sample catalog called `quickstart_catalog`
that uses a local file system.
## Running Polaris as a Standalone Process
You can also start Polaris through Gradle (packaged within the Polaris
repository):
+1. **Start the Server**
+
+Run the following command to start Polaris:
+
```shell
-cd ~/polaris
-# Build the server
-./gradlew clean :polaris-quarkus-server:assemble
:polaris-quarkus-server:quarkusAppPartsBuild --rerun
-# Start the server
./gradlew run
```
@@ -83,11 +89,6 @@ When using a Gradle-launched Polaris instance in this
tutorial, we'll launch an
For more information on how to configure Polaris for production usage, see the
[docs]({{% relref "../configuring-polaris-for-production" %}}).
When Polaris is run using the `./gradlew run` command, the root principal
credentials are `root` and `secret` for the `CLIENT_ID` and `CLIENT_SECRET`,
respectively.
-You can also set these credentials as environment variables for use with the
Polaris CLI:
-```shell
-export CLIENT_ID=root
-export CLIENT_SECRET=secret
-```
### Installing Apache Spark and Trino Locally for Testing
diff --git a/site/content/in-dev/unreleased/getting-started/using-polaris.md
b/site/content/in-dev/unreleased/getting-started/using-polaris.md
index 7713b149c..9c01d1c16 100644
--- a/site/content/in-dev/unreleased/getting-started/using-polaris.md
+++ b/site/content/in-dev/unreleased/getting-started/using-polaris.md
@@ -21,12 +21,16 @@ Title: Using Polaris
type: docs
weight: 400
---
+
## Setup
+
Define your `CLIENT_ID` & `CLIENT_SECRET` and export them for future use.
+
```shell
export CLIENT_ID=YOUR_CLIENT_ID
export CLIENT_SECRET=YOUR_CLIENT_SECRET
```
+
## Defining a Catalog
In Polaris, the [catalog]({{% relref "../entities#catalog" %}}) is the
top-level entity that objects like [tables]({{% relref "../entities#table" %}})
and [views]({{% relref "../entities#view" %}}) are organized under. With a
Polaris service running, you can create a catalog like so:
@@ -167,7 +171,6 @@ bin/spark-sql \
--conf spark.sql.catalog.quickstart_catalog.client.region=us-west-2
```
-
Similar to the CLI commands above, this configures Spark to use the Polaris
running at `localhost:8181`. If your Polaris server is running elsewhere, but
sure to update the configuration appropriately.
Finally, note that we include the `iceberg-aws-bundle` package here. If your
table is using a different filesystem, be sure to include the appropriate
dependency.
@@ -176,7 +179,9 @@ Finally, note that we include the `iceberg-aws-bundle`
package here. If your tab
Refresh the Docker container with the user's credentials:
```shell
-docker compose -f getting-started/eclipselink/docker-compose.yml up -d
+docker compose -p polaris -f getting-started/eclipselink/docker-compose.yml
stop spark-sql
+docker compose -p polaris -f getting-started/eclipselink/docker-compose.yml rm
-f spark-sql
+docker compose -p polaris -f getting-started/eclipselink/docker-compose.yml up
-d --no-deps spark-sql
```
Attach to the running spark-sql container:
@@ -237,14 +242,15 @@ org.apache.iceberg.exceptions.ForbiddenException:
Forbidden: Principal 'quicksta
Refresh the Docker container with the user's credentials:
```shell
-docker compose -f getting-started/eclipselink/docker-compose.yml down trino
-docker compose -f getting-started/eclipselink/docker-compose.yml up -d
+docker compose -p polaris -f getting-started/eclipselink/docker-compose.yml
stop trino
+docker compose -p polaris -f getting-started/eclipselink/docker-compose.yml rm
-f trino
+docker compose -p polaris -f getting-started/eclipselink/docker-compose.yml up
-d --no-deps trino
```
Attach to the running Trino container:
```shell
-docker exec -it eclipselink-trino-1 trino
+docker exec -it $(docker ps -q --filter name=trino) trino
```
You may not see Trino's prompt immediately, type ENTER to see it. A few
commands that you can try: