This is an automated email from the ASF dual-hosted git repository.

fanng pushed a commit to branch mcp_docker
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit eee51afde1ed916e06517f4727092af21e408b59
Author: fanng <[email protected]>
AuthorDate: Sun Aug 17 20:05:04 2025 +0800

    mcp server
---
 dev/docker/mcp-server/Dockerfile               | 37 ++++++++++++++++++++++
 dev/docker/mcp-server/mcp-server-dependency.sh | 44 ++++++++++++++++++++++++++
 dev/docker/mcp-server/start-mcp-server.sh      | 23 ++++++++++++++
 3 files changed, 104 insertions(+)

diff --git a/dev/docker/mcp-server/Dockerfile b/dev/docker/mcp-server/Dockerfile
new file mode 100644
index 0000000000..5826f1c085
--- /dev/null
+++ b/dev/docker/mcp-server/Dockerfile
@@ -0,0 +1,37 @@
+#
+# 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.
+#
+FROM python:3.10
+
+LABEL maintainer="[email protected]"
+
+WORKDIR /root/mcp-server
+
+COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
+
+COPY packages/mcp-server /root/mcp-server
+
+COPY start-mcp-server.sh /root/mcp-server
+
+RUN uv venv
+
+RUN uv sync
+
+RUN uv pip install -e .
+
+ENTRYPOINT ["/bin/bash", "start-mcp-server.sh"]
diff --git a/dev/docker/mcp-server/mcp-server-dependency.sh 
b/dev/docker/mcp-server/mcp-server-dependency.sh
new file mode 100755
index 0000000000..dc88d5d44f
--- /dev/null
+++ b/dev/docker/mcp-server/mcp-server-dependency.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+#
+# 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.
+#
+set -ex
+mcp_server_dir="$(dirname "${BASH_SOURCE-$0}")"
+mcp_server_dir="$(cd "${mcp_server_dir}">/dev/null; pwd)"
+gravitino_home="$(cd "${mcp_server_dir}/../../..">/dev/null; pwd)"
+
+# Prepare the Iceberg REST server packages
+cd ${gravitino_home}
+./gradlew :mcp-server:clean
+
+# Removed old packages 
+rm -rf "${mcp_server_dir}/packages"
+mkdir -p "${mcp_server_dir}/packages"
+
+cp -r ${gravitino_home}/mcp-server ${mcp_server_dir}/packages/mcp-server
+
+#cd ${gravitino_home}
+
+#cp start-mcp-server.sh ${mcp_server_dir}/packages/start_mcp_server.sh
+
+# Keeping the container running at all times
+#cat <<EOF >> 
"${mcp_server_dir}/packages/gravitino-iceberg-rest-server/bin/gravitino-iceberg-rest-server.sh"
+
+# Keeping a process running in the background
+#tail -f /dev/null
+#EOF
diff --git a/dev/docker/mcp-server/start-mcp-server.sh 
b/dev/docker/mcp-server/start-mcp-server.sh
new file mode 100644
index 0000000000..da368e2cc6
--- /dev/null
+++ b/dev/docker/mcp-server/start-mcp-server.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# 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.
+#
+
+cd /root/mcp-server
+
+uv run mcp_server --transport=http $@

Reply via email to