镜像构建历史
# 2025-08-31 15:31:49 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/webodm/app/media]
# 2025-08-31 15:31:49 840.25MB 复制新文件或目录到容器中
COPY /webodm ./ # buildkit
# 2025-08-31 15:27:02 584.70MB 执行命令并创建新的镜像层
RUN |5 DEBIAN_FRONTEND=noninteractive NODE_MAJOR=20 PYTHON_VERSION=3.9 RELEASE_CODENAME=jammy WORKDIR=/webodm sh -exc # Run-time dependencies
apt-get -qq update
apt-get install -y --no-install-recommends curl ca-certificates gnupg
# Legacy Python support
curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xf23c5a6cf475977595c89f51ba6932366a755776' | gpg --dearmor -o /etc/apt/trusted.gpg.d/deadsnakes.gpg
echo "deb http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu $RELEASE_CODENAME main" > /etc/apt/sources.list.d/deadsnakes.list
# Node.js deb source
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/nodesource.gpg
echo "deb https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" > /etc/apt/sources.list.d/nodesource.list
# Update package list
apt-get update
# Install common deps, starting with NodeJS
apt-get -qq install -y nodejs
# Python, GDAL, PDAL, nginx, letsencrypt, psql, git
apt-get install -y --no-install-recommends \
python$PYTHON_VERSION python$PYTHON_VERSION-distutils gdal-bin pdal \
nginx certbot gettext-base cron postgresql-client gettext tzdata git
# Install webpack, webpack CLI
npm install --quiet -g webpack@5.89.0
npm install --quiet -g webpack-cli@5.1.4
# Cleanup of build requirements
apt-get autoremove -y
apt-get clean
rm -rf /var/lib/apt/lists/*
# Remove stale temp files
rm -rf /tmp/* /var/tmp/*
# buildkit
# 2025-08-31 15:26:22 0.00B 设置环境变量 PATH
ENV PATH=/webodm/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-08-31 15:26:22 4.00B 执行命令并创建新的镜像层
RUN |5 DEBIAN_FRONTEND=noninteractive NODE_MAJOR=20 PYTHON_VERSION=3.9 RELEASE_CODENAME=jammy WORKDIR=/webodm sh -exc # Common system configuration, should change very infrequently
# Set timezone to UTC
echo "UTC" > /etc/timezone
# buildkit
# 2025-08-31 15:26:22 0.00B
SHELL [sh -exc]
# 2025-08-31 15:26:22 0.00B 设置工作目录为/webodm
WORKDIR /webodm
# 2025-08-31 15:26:22 0.00B 设置环境变量 PROJ_LIB
ENV PROJ_LIB=/usr/share/proj
# 2025-08-31 15:26:22 0.00B 设置环境变量 PYTHONPATH
ENV PYTHONPATH=/webodm
# 2025-08-31 15:26:22 0.00B 设置环境变量 PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# 2025-08-31 15:26:22 0.00B 定义构建参数
ARG WORKDIR=/webodm
# 2025-08-31 15:26:22 0.00B 定义构建参数
ARG RELEASE_CODENAME=jammy
# 2025-08-31 15:26:22 0.00B 定义构建参数
ARG PYTHON_VERSION=3.9
# 2025-08-31 15:26:22 0.00B 定义构建参数
ARG NODE_MAJOR=20
# 2025-08-31 15:26:22 0.00B 定义构建参数
ARG DEBIAN_FRONTEND=noninteractive
# 2025-08-31 15:26:22 0.00B 添加元数据标签
LABEL maintainer=Piero Toffanin <pt@masseranolabs.com>
# 2025-07-30 13:32:14 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2025-07-30 13:32:14 77.87MB
/bin/sh -c #(nop) ADD file:598bb7ba54e5a576778e9ebe1f4e514188812bea30c08d00446f8d04c37053e6 in /
# 2025-07-30 13:32:11 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=22.04
# 2025-07-30 13:32:11 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2025-07-30 13:32:11 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2025-07-30 13:32:11 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:68e002c9efb8d9ab334d4a70ab31168f882158e64fcaad1870a53389da7acf03",
"RepoTags": [
"opendronemap/webodm_webapp:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opendronemap/webodm_webapp:latest"
],
"RepoDigests": [
"opendronemap/webodm_webapp@sha256:afe1952bf425c9523955fde7e9d4e98570c3daba60db7875a7806b493abe3da7",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/opendronemap/webodm_webapp@sha256:f76bc3623bd00321f6f455934af1315cb6957ad08cb23bfc0d1038b1ee380d6e"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-08-31T07:31:49.87777986Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/webodm/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PYTHONUNBUFFERED=1",
"PYTHONPATH=/webodm",
"PROJ_LIB=/usr/share/proj"
],
"Cmd": [
"/bin/bash"
],
"Image": "",
"Volumes": {
"/webodm/app/media": {}
},
"WorkingDir": "/webodm",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"maintainer": "Piero Toffanin \u003cpt@masseranolabs.com\u003e",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.version": "22.04"
},
"Shell": [
"sh",
"-exc"
]
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1502829943,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/02214357a07e720d0c9ce3804ed616a0a112af1dc85615cc2b21b694d4a63141/diff:/var/lib/docker/overlay2/16caa7cff9ae8fbe6b29af90e4c33b00dbeaf3f1959db233963f646eb2e580aa/diff:/var/lib/docker/overlay2/5c262cefb8159ac3f292e695cd46cf5b93785b34884865746e5015149a41988c/diff:/var/lib/docker/overlay2/5eede866ec4347161210225c7e21b0af75ae4b3b75b5173fccae45dfd2fb193f/diff",
"MergedDir": "/var/lib/docker/overlay2/a994d6bfd8af898dd680d7c5f3ce6d9e3b12b948550857b1de20dcf8988dcc72/merged",
"UpperDir": "/var/lib/docker/overlay2/a994d6bfd8af898dd680d7c5f3ce6d9e3b12b948550857b1de20dcf8988dcc72/diff",
"WorkDir": "/var/lib/docker/overlay2/a994d6bfd8af898dd680d7c5f3ce6d9e3b12b948550857b1de20dcf8988dcc72/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:90a2bf02e851326fc70d05470553ed33e578342d6e06bfa0cfaf331c4079b7e4",
"sha256:b703c5067406080f8d419eff33410fa9a30daab7bf284433a10b5b1adf9dde6d",
"sha256:d13f9498c258c8ea5d8b52c146acee46abbf9139da676bca20eeb83bfd7c2ea7",
"sha256:2b27bbbf3a35bce7d6307496c90c38a20837995135615f2fdffbb4cd95dbbc8e",
"sha256:8cc2e0c8bd490ff4b9f71049659f68bca85a1c27330b27c1de4b05906736908f"
]
},
"Metadata": {
"LastTagTime": "2025-09-08T17:47:53.879493278+08:00"
}
}