反编译 Trino Dockerfile

文章目录

反编译 Trino Dockerfile

反编译Dockerfile命令

shell 复制代码
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm ghcr.io/laniksj/dfimage"
dfimage trinodb/trino:432

反编译后Dockerfile内容

shell 复制代码
Unable to find image 'ghcr.io/laniksj/dfimage:latest' locally
latest: Pulling from laniksj/dfimage
4abcf2066143: Pull complete 
a9cd27405e55: Pull complete 
905b6ecc7ae9: Pull complete 
2799eae2f25b: Pull complete 
eddc0410333a: Pull complete 
e79eaf700b78: Pull complete 
c9222d5c8c6f: Pull complete 
fb2a4c462b18: Pull complete 
Digest: sha256:a9b7704ff2a927649d872c05b179ada8bb1503387f58f125bfbf0a155749f05e
Status: Downloaded newer image for ghcr.io/laniksj/dfimage:latest
FROM <base image not found locally>
ADD file:139424fc60c0a17394da68faf4af3a17c9e959b6a1ce74c5b53ffc959145a63c in /
RUN /bin/sh -c mv -f /etc/yum.repos.d/ubi.repo /tmp || :
ADD file:ecc29a1455ca1b7c82018555e16e2e802135974523df6748e431f8707e759ddd in /tmp/tls-ca-bundle.pem
ADD multi:eed63f5f84efa377cb20d8bc2a3294d6aeffff59ee5380d49f1903b9673516dd in /etc/yum.repos.d/
LABEL maintainer="Red Hat, Inc."
LABEL com.redhat.component="ubi9-minimal-container"       name="ubi9-minimal"       version="9.2"
LABEL com.redhat.license_terms="https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI"
LABEL summary="Provides the latest release of the minimal Red Hat Universal Base Image 9."
LABEL description="The Universal Base Image Minimal is a stripped down image that uses microdnf as a package manager. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly."
LABEL io.k8s.display-name="Red Hat Universal Base Image 9 Minimal"
LABEL io.openshift.expose-services=""
LABEL io.openshift.tags="minimal rhel9"
ENV container oci
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CMD ["/bin/bash"]
RUN /bin/sh -c rm -rf /var/log/*
ADD file:d4e564939c7991d70e1c5392b02502c604ec36a1612a39fc922b8bb32a567932 in /root/buildinfo/content_manifests/ubi9-minimal-container-9.2-750.1697625013.json
ADD file:7aa78ccab5aa351a2b340ceba6ac1dad0988268ffec2b6ff113734e516c775f9 in /root/buildinfo/Dockerfile-ubi9-minimal-9.2-750.1697625013
LABEL "release"="750.1697625013" "distribution-scope"="public" "vendor"="Red Hat, Inc." "build-date"="2023-10-18T11:30:28" "architecture"="x86_64" "vcs-type"="git" "vcs-ref"="7ef59505f75bf0c11c8d3addefebee5ceaaf4c41" "io.k8s.description"="The Universal Base Image Minimal is a stripped down image that uses microdnf as a package manager. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly." "url"="https://access.redhat.com/containers/#/registry.access.redhat.com/ubi9-minimal/images/9.2-750.1697625013"
RUN /bin/sh -c rm -f '/etc/yum.repos.d/odcs-2460177-f3ccb.repo' '/etc/yum.repos.d/gitweb-a7836.repo'
RUN /bin/sh -c rm -f /tmp/tls-ca-bundle.pem
RUN /bin/sh -c mv -fZ /tmp/ubi.repo /etc/yum.repos.d/ubi.repo || :
RUN ARG JDK_VERSION
RUN ENV JAVA_HOME=/usr/lib/jvm/jdk-21.0.1
RUN ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/jdk-21.0.1/bin
RUN COPY /usr/lib/jvm/jdk-21.0.1 /usr/lib/jvm/jdk-21.0.1 # buildkit
RUN RUN |1 JDK_VERSION=21.0.1 /bin/sh -c set -xeu \
    &&     microdnf update -y \
    &&     microdnf install -y tar less python3 shadow-utils \
    &&     update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \
    &&     groupadd trino --gid 1000 \
    &&     useradd trino --uid 1000 --gid 1000 --create-home \
    &&     mkdir -p /usr/lib/trino /data/trino \
    &&     chown -R "trino:trino" /usr/lib/trino /data/trino # buildkit
RUN ARG TRINO_VERSION
RUN COPY trino-cli-432-executable.jar /usr/bin/trino # buildkit
RUN COPY trino-server-432 /usr/lib/trino # buildkit
RUN COPY default/etc /etc/trino # buildkit
RUN COPY /libjvmkill.so /usr/lib/trino/bin # buildkit
RUN EXPOSE map[8080/tcp:{}]
RUN USER trino:trino
RUN CMD ["/usr/lib/trino/bin/run-trino"]
RUN HEALTHCHECK &{["CMD-SHELL" "/usr/lib/trino/bin/health-check"] "10s" "5s" "10s" '\x00'}

获取 Trino 启动脚本

shell 复制代码
# 下载 trino helm
helm repo add trino https://trinodb.github.io/charts/
helm pull trino/trino --version 0.19.0

# 部署一个demo trino on k8s集群,获取官方run-trino脚本
# Chart.yaml 上级目录下执行
helm install example-trino-cluster trino/trino 

# 根据反编译Dockerfile内容 'RUN CMD ["/usr/lib/trino/bin/run-trino"]' 登录pod查看 /usr/lib/trino/bin/run-trino内容
# 登录 pod
kubectl exec -it example-trino-cluster-coordinator-77dbb597dd-sn2x4 -- bash
cat /usr/lib/trino/bin/run-trino

# 从pod 拷贝 libjvmkill.so 到宿主机
# kubectl cp example-trino-cluster-coordinator-77dbb597dd-wszvm:/usr/lib/trino/bin/libjvmkill.so ./libjvmkill.so

# 卸载
# helm uninstall example-trino-cluster 
shell 复制代码
# cat /usr/lib/trino/bin/run-trino

#!/bin/bash

set -xeuo pipefail

launcher_opts=(--etc-dir /etc/trino)
if ! grep -s -q 'node.id' /etc/trino/node.properties; then
    launcher_opts+=("-Dnode.id=${HOSTNAME}")
fi

exec /usr/lib/trino/bin/launcher run "${launcher_opts[@]}" "$@"
shell 复制代码
# cat /usr/lib/trino/bin/health-check 

#!/bin/bash

set -euo pipefail

function get_property() {
    grep "^$1=" "$2" | cut -d'=' -f2
}

scheme=http
port=8080

config=/etc/trino/config.properties
# prefer to use http even if https is enabled
if [ "$(get_property 'http-server.http.enabled' "$config")" == "false" ]; then
    scheme=https
    port=$(get_property http-server.https.port "$config")
else
    port=$(get_property http-server.http.port "$config")
fi

endpoint="$scheme://localhost:$port/v1/info"

# add --insecure to disable certificate verification in curl, in case a self-signed certificate is being used
if ! info=$(curl --fail --silent --show-error --insecure "$endpoint"); then
    echo >&2 "Server is not responding to requests"
    exit 1
fi

if ! grep -q '"starting":\s*false' <<<"$info" >/dev/null; then
    echo >&2 "Server is starting"
    exit 1
fi

卸载

shell 复制代码
# 卸载
helm uninstall example-trino-cluster 
相关推荐
m0_5474866610 分钟前
《大数据导论》全套PPT课件2026
大数据
猴子155168111 分钟前
360度评估怎么让打分更客观一些?2026各项权重怎么设才合理
大数据·经验分享
CHANCE V39 分钟前
Elasticsearch 进阶
大数据·elasticsearch·搜索引擎
xqqxqxxq43 分钟前
AI Agent学习:第四章小结及八道思考题(李博杰《深入理解 AI Agent》第四章观后总结)
大数据·人工智能·学习
汇海老周1 小时前
《金融炼金术》第三课:从反身性到繁荣—萧条——理解正反馈机制
大数据·金融
Aloudata1 小时前
语义治理 vs 知识治理:AI 数据分析需要业务知识库还是可执行语义层
大数据·人工智能·数据分析·data agent·语义层
en.en..1 小时前
Linux wait()函数(预防僵尸进程)
java·大数据·开发语言
Superzhangaa1 小时前
全国服务消费季里的科技新品:太希智能外骨骼持续走红
大数据·人工智能·科技·开源
凡泰AI1 小时前
如何为政务 APP 搭建开放平台,实现多部门、第三方供应商标准化入驻与统一管理
android·大数据·小程序·uni-app·app·政务
人工智能培训1 小时前
从“捏泥人”到“造世界”:3D生成式AI的技术跃迁与产业落地
大数据·人工智能·学习·生活·ai写作