docker.io/ghost:5.104.2-alpine linux/amd64

docker.io/ghost:5.104.2-alpine - 国内下载镜像源 浏览次数:113

docker.io/ghost

这是一个用于运行 Ghost 博客平台的 Docker 镜像。Ghost 是一个开源的博客平台,以其简洁的界面和强大的功能而闻名。使用此镜像,你可以轻松地搭建一个自己的博客网站。

该镜像包含了运行 Ghost 所需的所有依赖项,包括 Node.js、Nginx 和 MySQL。你只需简单地运行一个命令即可启动一个 Ghost 实例。

该镜像非常易于使用,即使你不是 Docker 专家也可以轻松地使用它。
源镜像 docker.io/ghost:5.104.2-alpine
国内镜像 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine
镜像ID sha256:dd5fb13da887f8c42425d7097c6f792d2601bd38cda84cb5628e63374fa9e6d9
镜像TAG 5.104.2-alpine
大小 490.83MB
镜像源 docker.io
项目信息 Docker-Hub主页 🚀项目TAG 🚀
CMD node current/index.js
启动入口 docker-entrypoint.sh
工作目录 /var/lib/ghost
OS/平台 linux/amd64
浏览量 113 次
贡献者
镜像创建 2024-12-11T15:19:15Z
同步时间 2024-12-12 13:43
更新时间 2025-02-20 23:41
开放端口
2368/tcp
环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NODE_VERSION=18.20.5 YARN_VERSION=1.22.22 GOSU_VERSION=1.17 NODE_ENV=production GHOST_CLI_VERSION=1.26.1 GHOST_INSTALL=/var/lib/ghost GHOST_CONTENT=/var/lib/ghost/content GHOST_VERSION=5.104.2
镜像安全扫描 查看Trivy扫描报告

系统OS: alpine 3.20.3 扫描引擎: Trivy 扫描时间: 2024-12-12 13:44

低危漏洞:9 中危漏洞:39 高危漏洞:54 严重漏洞:7

Docker拉取命令 无权限下载?点我修复

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine  docker.io/ghost:5.104.2-alpine

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine  docker.io/ghost:5.104.2-alpine

Shell快速替换命令

sed -i 's#ghost:5.104.2-alpine#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine  docker.io/ghost:5.104.2-alpine'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine  docker.io/ghost:5.104.2-alpine'

镜像构建历史


# 2024-12-11 23:19:15  0.00B 设置默认要执行的命令
CMD ["node" "current/index.js"]
                        
# 2024-12-11 23:19:15  0.00B 声明容器运行时监听的端口
EXPOSE map[2368/tcp:{}]
                        
# 2024-12-11 23:19:15  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
                        
# 2024-12-11 23:19:15  610.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin # buildkit
                        
# 2024-12-11 23:19:15  0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/ghost/content]
                        
# 2024-12-11 23:19:15  0.00B 设置工作目录为/var/lib/ghost
WORKDIR /var/lib/ghost
                        
# 2024-12-11 23:19:15  311.08MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; 	mkdir -p "$GHOST_INSTALL"; 	chown node:node "$GHOST_INSTALL"; 		apkDel=; 		installCmd='gosu node ghost install "$GHOST_VERSION" --db mysql --dbhost mysql --no-prompt --no-stack --no-setup --dir "$GHOST_INSTALL"'; 	if ! eval "$installCmd"; then 		virtual='.build-deps-ghost'; 		apkDel="$apkDel $virtual"; 		apk add --no-cache --virtual "$virtual" g++ linux-headers make python3; 		eval "$installCmd"; 	fi; 		cd "$GHOST_INSTALL"; 	gosu node ghost config --no-prompt --ip '::' --port 2368 --url 'http://localhost:2368'; 	gosu node ghost config paths.contentPath "$GHOST_CONTENT"; 		gosu node ln -s config.production.json "$GHOST_INSTALL/config.development.json"; 	readlink -f "$GHOST_INSTALL/config.development.json"; 		mv "$GHOST_CONTENT" "$GHOST_INSTALL/content.orig"; 	mkdir -p "$GHOST_CONTENT"; 	chown node:node "$GHOST_CONTENT"; 	chmod 1777 "$GHOST_CONTENT"; 		cd "$GHOST_INSTALL/current"; 	packages="$(node -p ' 		var ghost = require("./package.json"); 		var transform = require("./node_modules/@tryghost/image-transform/package.json"); 		[ 			"sharp@" + transform.optionalDependencies["sharp"], 			"sqlite3@" + ghost.optionalDependencies["sqlite3"], 		].join(" ") 	')"; 	if echo "$packages" | grep 'undefined'; then exit 1; fi; 	for package in $packages; do 		installCmd='gosu node yarn add "$package" --force'; 		if ! eval "$installCmd"; then 			virtualPackages='g++ make python3'; 			case "$package" in 				sharp@*) echo >&2 "sorry: libvips 8.12.1 in Alpine 3.15 is not new enough (8.12.2+) for sharp 0.30 😞"; continue ;; 			esac; 			virtual=".build-deps-${package%%@*}"; 			apkDel="$apkDel $virtual"; 			apk add --no-cache --virtual "$virtual" $virtualPackages; 						eval "$installCmd --build-from-source"; 		fi; 	done; 		if [ -n "$apkDel" ]; then 		apk del --no-network $apkDel; 	fi; 		gosu node yarn cache clean; 	gosu node npm cache clean --force; 	npm cache clean --force; 	rm -rv /tmp/yarn* /tmp/v8* # buildkit
                        
# 2024-12-11 23:19:15  0.00B 设置环境变量 GHOST_VERSION
ENV GHOST_VERSION=5.104.2
                        
# 2024-12-11 23:19:15  0.00B 设置环境变量 GHOST_CONTENT
ENV GHOST_CONTENT=/var/lib/ghost/content
                        
# 2024-12-11 23:19:15  0.00B 设置环境变量 GHOST_INSTALL
ENV GHOST_INSTALL=/var/lib/ghost
                        
# 2024-12-11 23:19:15  47.87MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; 	npm install -g "ghost-cli@$GHOST_CLI_VERSION"; 	npm cache clean --force # buildkit
                        
# 2024-12-11 23:19:15  0.00B 设置环境变量 GHOST_CLI_VERSION
ENV GHOST_CLI_VERSION=1.26.1
                        
# 2024-12-11 23:19:15  0.00B 设置环境变量 NODE_ENV
ENV NODE_ENV=production
                        
# 2024-12-11 23:19:15  4.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; ln -svf gosu /usr/local/bin/su-exec; su-exec nobody true # backwards compatibility (TODO remove in Ghost 6+) # buildkit
                        
# 2024-12-11 23:19:15  2.61MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; 		apk add --no-cache --virtual .gosu-deps 		ca-certificates 		dpkg 		gnupg 	; 		dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; 	wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; 	wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; 		export GNUPGHOME="$(mktemp -d)"; 	gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; 	gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; 	gpgconf --kill all; 	rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; 		apk del --no-network .gosu-deps; 		chmod +x /usr/local/bin/gosu; 	gosu --version; 	gosu nobody true # buildkit
                        
# 2024-12-11 23:19:15  0.00B 设置环境变量 GOSU_VERSION
ENV GOSU_VERSION=1.17
                        
# 2024-12-11 23:19:15  2.03MB 执行命令并创建新的镜像层
RUN /bin/sh -c apk add --no-cache 		bash # buildkit
                        
# 2024-11-16 07:05:18  0.00B 设置默认要执行的命令
CMD ["node"]
                        
# 2024-11-16 07:05:18  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
                        
# 2024-11-16 07:05:18  388.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
                        
# 2024-11-16 07:05:18  5.59MB 执行命令并创建新的镜像层
RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar   && export GNUPGHOME="$(mktemp -d)"   && for key in     6A010C5166006599AA17F08146C2130DFD2497F5   ; do     gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" ||     gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ;   done   && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz"   && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc"   && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   && gpgconf --kill all   && rm -rf "$GNUPGHOME"   && mkdir -p /opt   && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/   && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn   && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg   && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   && apk del .build-deps-yarn   && yarn --version   && rm -rf /tmp/* # buildkit
                        
# 2024-11-16 07:05:18  0.00B 设置环境变量 YARN_VERSION
ENV YARN_VERSION=1.22.22
                        
# 2024-11-16 07:05:18  113.86MB 执行命令并创建新的镜像层
RUN /bin/sh -c addgroup -g 1000 node     && adduser -u 1000 -G node -s /bin/sh -D node     && apk add --no-cache         libstdc++     && apk add --no-cache --virtual .build-deps         curl     && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)"       && case "${alpineArch##*-}" in         x86_64) ARCH='x64' CHECKSUM="deaf95aceeb446d8861419884fc1d07c54e4a958e4d9b82d8fb9c8f1f7001535" OPENSSL_ARCH=linux-x86_64;;         x86) OPENSSL_ARCH=linux-elf;;         aarch64) OPENSSL_ARCH=linux-aarch64;;         arm*) OPENSSL_ARCH=linux-armv4;;         ppc64le) OPENSSL_ARCH=linux-ppc64le;;         s390x) OPENSSL_ARCH=linux-s390x;;         *) ;;       esac   && if [ -n "${CHECKSUM}" ]; then     set -eu;     curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz";     echo "$CHECKSUM  node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c -       && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner       && ln -s /usr/local/bin/node /usr/local/bin/nodejs;   else     echo "Building from source"     && apk add --no-cache --virtual .build-deps-full         binutils-gold         g++         gcc         gnupg         libgcc         linux-headers         make         python3         py-setuptools     && export GNUPGHOME="$(mktemp -d)"     && for key in       C0D6248439F1D5604AAFFB4021D900FFDB233756       DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7       CC68F5A3106FF448322E48ED27F5E38D5B0A215F       8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600       890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4       C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C       108F52B48DB57BB0CC439B2997B01419BD92F80A       A363A499291CBBC940DD62E41F10027AF002F8B0     ; do       gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" ||       gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ;     done     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz"     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"     && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc     && gpgconf --kill all     && rm -rf "$GNUPGHOME"     && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c -     && tar -xf "node-v$NODE_VERSION.tar.xz"     && cd "node-v$NODE_VERSION"     && ./configure     && make -j$(getconf _NPROCESSORS_ONLN) V=     && make install     && apk del .build-deps-full     && cd ..     && rm -Rf "node-v$NODE_VERSION"     && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt;   fi   && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"   && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \;   && apk del .build-deps   && node --version   && npm --version # buildkit
                        
# 2024-11-16 07:05:18  0.00B 设置环境变量 NODE_VERSION
ENV NODE_VERSION=18.20.5
                        
# 2024-09-06 20:05:36  0.00B 设置默认要执行的命令
CMD ["/bin/sh"]
                        
# 2024-09-06 20:05:36  7.80MB 复制文件或目录到容器中
ADD alpine-minirootfs-3.20.3-x86_64.tar.gz / # buildkit
                        
                    

镜像信息

{
    "Id": "sha256:dd5fb13da887f8c42425d7097c6f792d2601bd38cda84cb5628e63374fa9e6d9",
    "RepoTags": [
        "ghost:5.104.2-alpine",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost:5.104.2-alpine"
    ],
    "RepoDigests": [
        "ghost@sha256:84e71fc3852d395a82090671775c0f02ada87e5a094d8b99c6ffb8fc47cbe27b",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ghost@sha256:67ddb84c1f8a88e0a4168a7b151756f7de265b2ef2d1baaa4661d38bbd11813f"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2024-12-11T15:19:15Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "2368/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "NODE_VERSION=18.20.5",
            "YARN_VERSION=1.22.22",
            "GOSU_VERSION=1.17",
            "NODE_ENV=production",
            "GHOST_CLI_VERSION=1.26.1",
            "GHOST_INSTALL=/var/lib/ghost",
            "GHOST_CONTENT=/var/lib/ghost/content",
            "GHOST_VERSION=5.104.2"
        ],
        "Cmd": [
            "node",
            "current/index.js"
        ],
        "ArgsEscaped": true,
        "Image": "",
        "Volumes": {
            "/var/lib/ghost/content": {}
        },
        "WorkingDir": "/var/lib/ghost",
        "Entrypoint": [
            "docker-entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": null
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 490831072,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/1e3c1b972c1254d587992b37393e2f72c1cff65673e776976d002af571e1fcd1/diff:/var/lib/docker/overlay2/9e5e2231b0c6f89e5081fe90ceb7e7eee05c6b3cb07a7582154c086bb4acff90/diff:/var/lib/docker/overlay2/d081ddbd9570e3f5d4b002cd9e8c0ce7cd55693755c8f2469e18edacea83b1b3/diff:/var/lib/docker/overlay2/b005811e4124e1880cf94ab63c88c8a0a345b8888171f39d80265c5a90073b3e/diff:/var/lib/docker/overlay2/13ea040ddd2caf80f5b68c76ae863bbd805c181296c5bf4d2f6ce7e33177772f/diff:/var/lib/docker/overlay2/671eeada972a2acc1df376bed176e55e1aaa54da8cd7cd239abee85576229d27/diff:/var/lib/docker/overlay2/1bea4502e418fc4db2ca4aa23e345a91d649d4488c50287fa8746b427c5b7337/diff:/var/lib/docker/overlay2/77983631f741afcdc9c82f2d28c91d6a7c6abc4b2d7061528015c086c02a0ce8/diff:/var/lib/docker/overlay2/0f1b1b8326725ce5cfa0ffe5c17c23850798f7f92440eaf455bb083e18857288/diff:/var/lib/docker/overlay2/23c5724f3a35122d45237c48d0eec74bfb90f129834f1ecb674937c0af9f9db3/diff",
            "MergedDir": "/var/lib/docker/overlay2/feffd48ff174b88621c6f9e3f5a8791731acab138b6fda5f9832d984b62d9c7e/merged",
            "UpperDir": "/var/lib/docker/overlay2/feffd48ff174b88621c6f9e3f5a8791731acab138b6fda5f9832d984b62d9c7e/diff",
            "WorkDir": "/var/lib/docker/overlay2/feffd48ff174b88621c6f9e3f5a8791731acab138b6fda5f9832d984b62d9c7e/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:75654b8eeebd3beae97271a102f57cdeb794cc91e442648544963a7e951e9558",
            "sha256:83ada9b02fd6a718e75515321c3b091a840e44c8911285764e4cb6f2f2084551",
            "sha256:5003e477a3c5dec0df5630f0fe301f0fcafaa48087d82b811ee28a04d42b17f3",
            "sha256:aae2f82b308dbb02dde64b0c0e9a59a15f37d8521d5cec1bce81617398101a49",
            "sha256:bd92c38f7beea7e85d002454bc3bdabf62fd9606ab54f0b86a59c4fe2b908b06",
            "sha256:0005f43713f13747e8f0182a216ab311ed242da82df10bc6918a8711390df8c7",
            "sha256:0b7924044c5521121b51cd16d60446c386bc189408698df5fc28e4a52e63ffe9",
            "sha256:0619b322e1c9e05ecd3d8ff576173edcfdade2b0ce30ee8ea33da781198b8a00",
            "sha256:cc75d5e0d1245e692a1fd2e4c20a23d1b8701c46de8731253ef92177ec435f60",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:def64c3ca8409e0e0bc3b7b33021e26d5454541cdb49004c2ba773ebd25e8583"
        ]
    },
    "Metadata": {
        "LastTagTime": "2024-12-12T13:42:52.764296754+08:00"
    }
}

更多版本

docker.io/ghost:latest

linux/amd64 docker.io573.01MB2024-11-07 11:19
291

docker.io/ghostchu/peerbanhelper:latest

linux/amd64 docker.io338.87MB2024-11-07 17:54
133

docker.io/ghost:5.104.2-alpine

linux/amd64 docker.io490.83MB2024-12-12 13:43
112