镜像构建历史
# 2025-12-12 04:45:11 0.00B 设置默认要执行的命令
CMD ["php" "-a"]
# 2025-12-12 04:45:11 0.00B 设置工作目录为/app
WORKDIR /app
# 2025-12-12 04:45:11 0.00B 执行命令并创建新的镜像层
RUN |2 PHP_VERSION=7.4 ORACLE_VERSION=21 /bin/sh -c php -m | grep -i oci8 && php -m | grep -i pdo_oci # buildkit
# 2025-12-12 04:45:11 3.90KB 执行命令并创建新的镜像层
RUN |2 PHP_VERSION=7.4 ORACLE_VERSION=21 /bin/sh -c chmod +x /usr/local/bin/test-oci8.php # buildkit
# 2025-12-12 04:45:11 3.90KB 复制新文件或目录到容器中
COPY test-oci8.php /usr/local/bin/test-oci8.php # buildkit
# 2025-12-12 04:45:11 43.92KB 执行命令并创建新的镜像层
RUN |2 PHP_VERSION=7.4 ORACLE_VERSION=21 /bin/sh -c INSTANT_DIR=$(ls -d /opt/oracle/instantclient_* | head -1) && INSTANT_VERSION=$(basename $INSTANT_DIR | sed 's/instantclient_//' | tr '_' '.') && PHP_MAJOR=$(php -n -r 'echo PHP_MAJOR_VERSION;') && PHP_MINOR=$(php -n -r 'echo PHP_MINOR_VERSION;') && echo "Configuring PDO_OCI for PHP $PHP_MAJOR.$PHP_MINOR" && if [ "$PHP_MAJOR" -eq 8 ] && [ "$PHP_MINOR" -eq 4 ]; then echo "Installing PDO_OCI via PECL for PHP 8.4" && echo "instantclient,$INSTANT_DIR" | pecl install pdo_oci && docker-php-ext-enable pdo_oci; else echo "Installing PDO_OCI via docker-php-ext for PHP < 8.4" && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,$INSTANT_DIR,$INSTANT_VERSION && docker-php-ext-install pdo_oci; fi # buildkit
# 2025-12-12 04:45:05 2.17MB 执行命令并创建新的镜像层
RUN |2 PHP_VERSION=7.4 ORACLE_VERSION=21 /bin/sh -c PHP_MAJOR=$(php -r 'echo PHP_MAJOR_VERSION;') && PHP_MINOR=$(php -r 'echo PHP_MINOR_VERSION;') && INSTANT_DIR=$(ls -d /opt/oracle/instantclient_* | head -1) && echo "Installing OCI8 for PHP $PHP_MAJOR.$PHP_MINOR" && if [ "$PHP_MAJOR" -eq 7 ]; then echo "PHP 7.x detected, installing oci8-2.2.0" && echo "instantclient,$INSTANT_DIR" | pecl install oci8-2.2.0; elif [ "$PHP_MAJOR" -eq 8 ] && [ "$PHP_MINOR" -eq 0 ]; then echo "PHP 8.0 detected, installing oci8-3.0.1" && echo "instantclient,$INSTANT_DIR" | pecl install oci8-3.0.1; elif [ "$PHP_MAJOR" -eq 8 ] && [ "$PHP_MINOR" -eq 1 ]; then echo "PHP 8.1 detected, installing oci8-3.2.1" && echo "instantclient,$INSTANT_DIR" | pecl install oci8-3.2.1; elif [ "$PHP_MAJOR" -eq 8 ] && [ "$PHP_MINOR" -eq 2 ]; then echo "PHP 8.2 detected, installing oci8-3.3.0" && echo "instantclient,$INSTANT_DIR" | pecl install oci8-3.3.0; elif [ "$PHP_MAJOR" -eq 8 ] && [ "$PHP_MINOR" -eq 3 ]; then echo "PHP 8.3 detected, installing oci8-3.4.0" && echo "instantclient,$INSTANT_DIR" | pecl install oci8-3.4.0; else echo "PHP 8.4+ detected, installing latest oci8" && echo "instantclient,$INSTANT_DIR" | pecl install oci8; fi && docker-php-ext-enable oci8 # buildkit
# 2025-12-12 04:44:56 3.28MB 执行命令并创建新的镜像层
RUN |2 PHP_VERSION=7.4 ORACLE_VERSION=21 /bin/sh -c curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # buildkit
# 2025-12-12 04:44:54 0.00B 设置环境变量 PATH
ENV PATH=/opt/oracle/instantclient_21_13:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-12-12 04:44:54 0.00B 设置环境变量 LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_21_13
# 2025-12-12 04:44:54 24.57KB 执行命令并创建新的镜像层
RUN |2 PHP_VERSION=7.4 ORACLE_VERSION=21 /bin/sh -c INSTANT_DIR=$(ls -d /opt/oracle/instantclient_* | head -1) && mkdir -p /etc/profile.d && echo "export LD_LIBRARY_PATH=$INSTANT_DIR:\${LD_LIBRARY_PATH}" >> /etc/profile.d/oracle.sh && echo "export PATH=$INSTANT_DIR:\${PATH}" >> /etc/profile.d/oracle.sh && echo "$INSTANT_DIR" > /opt/oracle/instant_dir.txt && echo "$INSTANT_DIR" > /etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig # buildkit
# 2025-12-12 04:44:54 260.70MB 复制新文件或目录到容器中
COPY /opt/oracle /opt/oracle # buildkit
# 2025-12-12 04:44:50 40.41MB 执行命令并创建新的镜像层
RUN |2 PHP_VERSION=7.4 ORACLE_VERSION=21 /bin/sh -c apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev git unzip && (apt-get install -y libaio1t64 || apt-get install -y libaio1) && apt-get clean && rm -rf /var/lib/apt/lists/* && ldconfig && if [ -f /usr/lib/x86_64-linux-gnu/libaio.so.1t64 ] && [ ! -f /usr/lib/x86_64-linux-gnu/libaio.so.1 ]; then ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1; fi # buildkit
# 2025-12-12 04:44:50 0.00B 添加元数据标签
LABEL oracle.version=21
# 2025-12-12 04:44:50 0.00B 添加元数据标签
LABEL php.version=7.4
# 2025-12-12 04:44:50 0.00B 添加元数据标签
LABEL maintainer=docker-php-oci8
# 2025-12-12 04:44:50 0.00B 定义构建参数
ARG ORACLE_VERSION=21
# 2025-12-12 04:44:50 0.00B 定义构建参数
ARG PHP_VERSION=7.4
# 2022-11-15 14:01:51 0.00B
/bin/sh -c #(nop) CMD ["php" "-a"]
# 2022-11-15 14:01:51 0.00B
/bin/sh -c #(nop) ENTRYPOINT ["docker-php-entrypoint"]
# 2022-11-15 14:01:51 17.00B
/bin/sh -c docker-php-ext-enable sodium
# 2022-11-15 14:01:50 7.20KB
/bin/sh -c #(nop) COPY multi:6edd033b037aa2d7697fc3b9f82c2f162146c1920a0c6d25a165dc56783204db in /usr/local/bin/
# 2022-11-15 14:01:50 112.37MB
/bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends libargon2-dev libcurl4-openssl-dev libonig-dev libreadline-dev libsodium-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev ; export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" ; docker-php-source extract; cd /usr/src/php; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; if [ ! -d /usr/include/curl ]; then ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; fi; ./configure --build="$gnuArch" --with-config-file-path="$PHP_INI_DIR" --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" --enable-option-checking=fatal --with-mhash --with-pic --enable-ftp --enable-mbstring --enable-mysqlnd --with-password-argon2 --with-sodium=shared --with-pdo-sqlite=/usr --with-sqlite3=/usr --with-curl --with-iconv --with-openssl --with-readline --with-zlib --enable-phpdbg --enable-phpdbg-readline --with-pear $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') --with-libdir="lib/$debMultiarch" --enable-embed ; make -j "$(nproc)"; find -type f -name '*.a' -delete; make install; find /usr/local -type f -perm '/0111' -exec sh -euxc ' strip --strip-all "$@" || : ' -- '{}' + ; make clean; cp -v php.ini-* "$PHP_INI_DIR/"; cd /; docker-php-source delete; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { print $(NF-1) }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; pecl update-channels; rm -rf /tmp/pear ~/.pearrc; php --version
# 2022-11-15 14:00:04 587.00B
/bin/sh -c #(nop) COPY file:ce57c04b70896f77cc11eb2766417d8a1240fcffe5bba92179ec78c458844110 in /usr/local/bin/
# 2022-11-15 14:00:04 11.64MB
/bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg dirmngr; rm -rf /var/lib/apt/lists/*; mkdir -p /usr/src; cd /usr/src; curl -fsSL -o php.tar.xz "$PHP_URL"; if [ -n "$PHP_SHA256" ]; then echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; fi; if [ -n "$PHP_ASC_URL" ]; then curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify php.tar.xz.asc php.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME"; fi; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
# 2022-11-15 13:59:52 0.00B
/bin/sh -c #(nop) ENV PHP_SHA256=924846abf93bc613815c55dd3f5809377813ac62a9ec4eb3778675b82a27b927
# 2022-11-15 13:59:52 0.00B
/bin/sh -c #(nop) ENV PHP_URL=https://www.php.net/distributions/php-7.4.33.tar.xz PHP_ASC_URL=https://www.php.net/distributions/php-7.4.33.tar.xz.asc
# 2022-11-15 13:59:52 0.00B
/bin/sh -c #(nop) ENV PHP_VERSION=7.4.33
# 2022-11-15 13:59:52 0.00B
/bin/sh -c #(nop) ENV GPG_KEYS=42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312
# 2022-11-15 12:13:22 0.00B
/bin/sh -c #(nop) ENV PHP_LDFLAGS=-Wl,-O1 -pie
# 2022-11-15 12:13:22 0.00B
/bin/sh -c #(nop) ENV PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
# 2022-11-15 12:13:21 0.00B
/bin/sh -c #(nop) ENV PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
# 2022-11-15 12:13:21 0.00B
/bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR/conf.d"; [ ! -d /var/www/html ]; mkdir -p /var/www/html; chown www-data:www-data /var/www/html; chmod 777 /var/www/html
# 2022-11-15 12:13:21 0.00B
/bin/sh -c #(nop) ENV PHP_INI_DIR=/usr/local/etc/php
# 2022-11-15 12:13:20 269.16MB
/bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends $PHPIZE_DEPS ca-certificates curl xz-utils ; rm -rf /var/lib/apt/lists/*
# 2022-11-15 12:12:59 0.00B
/bin/sh -c #(nop) ENV PHPIZE_DEPS=autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c
# 2022-11-15 12:12:59 46.00B
/bin/sh -c set -eux; { echo 'Package: php*'; echo 'Pin: release *'; echo 'Pin-Priority: -1'; } > /etc/apt/preferences.d/no-debian-php
# 2022-11-15 12:04:54 0.00B
/bin/sh -c #(nop) CMD ["bash"]
# 2022-11-15 12:04:54 80.51MB
/bin/sh -c #(nop) ADD file:d08e242792caa7f842fcf39a09ad59c97a856660e2013d5aed3e4a29197e9aaa in /
镜像信息
{
"Id": "sha256:34be98466b0279c5f26ad86ee55f32f55483579068e63887a0d916a3161af1c0",
"RepoTags": [
"donvito/php-oci8:7.4",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/donvito/php-oci8:7.4"
],
"RepoDigests": [
"donvito/php-oci8@sha256:20fe6dc4fb2cb0cc8a4383cabfc8f904ac84e7096a02b7dec38175c657d74314",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/donvito/php-oci8@sha256:4c5a9fd3788e66bbca899f17d8090dc0dce9b7178a9aef7e0c2f4015ecd8ac29"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-12-11T20:45:11.795709414Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/oracle/instantclient_21_13:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PHPIZE_DEPS=autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c",
"PHP_INI_DIR=/usr/local/etc/php",
"PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64",
"PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64",
"PHP_LDFLAGS=-Wl,-O1 -pie",
"GPG_KEYS=42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312",
"PHP_VERSION=7.4.33",
"PHP_URL=https://www.php.net/distributions/php-7.4.33.tar.xz",
"PHP_ASC_URL=https://www.php.net/distributions/php-7.4.33.tar.xz.asc",
"PHP_SHA256=924846abf93bc613815c55dd3f5809377813ac62a9ec4eb3778675b82a27b927",
"LD_LIBRARY_PATH=/opt/oracle/instantclient_21_13"
],
"Cmd": [
"php",
"-a"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": [
"docker-php-entrypoint"
],
"OnBuild": null,
"Labels": {
"maintainer": "docker-php-oci8",
"oracle.version": "21",
"org.opencontainers.image.created": "2025-12-12T10:33:51.668Z",
"org.opencontainers.image.description": "Docker image with php, oci8, pdo_oci, oracle instant_client",
"org.opencontainers.image.licenses": "",
"org.opencontainers.image.revision": "e69a2a7a2d59ff418bfa41ba48f81f07183f9f1d",
"org.opencontainers.image.source": "https://github.com/vitoo/docker-php-oci8",
"org.opencontainers.image.title": "docker-php-oci8",
"org.opencontainers.image.url": "https://github.com/vitoo/docker-php-oci8",
"org.opencontainers.image.version": "7.4-oracle21",
"php.version": "7.4"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 780335278,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/7bf04669f219b6a49190abb0aa5e51da1af291bc57b2192e5fddd660037b8cf8/diff:/var/lib/docker/overlay2/d8348a878e0c93698f90c616b4fd3c68c3d1178492281a59f706b1e60f37de4a/diff:/var/lib/docker/overlay2/b4988c7d06c4a0239789fa411fff95ec85c4e57d18dd6c8f196b65b7dcb21e0e/diff:/var/lib/docker/overlay2/762b8b442ef57ca24fc6e42f0adc48cc4b5b1c5cca486689bcd2a17741760321/diff:/var/lib/docker/overlay2/95d6d0d84a9689a6417e8d62ace8ba6b8fdc52d72429f820b430a5bd690acb55/diff:/var/lib/docker/overlay2/0af6a692be90b390600b2e74c22dd463cd79c14fec22941349662b2ea5814f2a/diff:/var/lib/docker/overlay2/10b14606492d2419bf3f59f6ffb308ed7e2f99ed4bbf09104eec3a0bb08c2558/diff:/var/lib/docker/overlay2/4b8fadc6fa296404a599469110bed5f7760b1de399084017757caec6a9a44211/diff:/var/lib/docker/overlay2/914e141febf8758cc9789c13c2b0a5cc54f1bff57e8139448b30b7ebf5145f2d/diff:/var/lib/docker/overlay2/37276275d6e17fbb5cc884b8b64cf6b1badf4c7a1243b117c2f8f70a0391d497/diff:/var/lib/docker/overlay2/e3a1503528d6076e1a5419e06f9cd813f85006a94fe1ef4af45f77427b98fea1/diff:/var/lib/docker/overlay2/b57c86d4d85dfdfff47a537c17911f16108619dac5c40f26c16934a3f88183d7/diff:/var/lib/docker/overlay2/1975f62b3081b3521b2c641db119ae98ae68181fed8ed22db82ee03a2d6cebae/diff:/var/lib/docker/overlay2/e5b07b3cc894e5bd710923f248db8d810fcb65ac29ed41614d58e314d839df26/diff:/var/lib/docker/overlay2/ed4903e426a4d6146452c0d9c0eedf93190cbb770773eda2a78b5224f0fb179a/diff:/var/lib/docker/overlay2/788ad1803bca3699fa787e58e268197a20c5a8365a10747442ed87d538e5eadb/diff:/var/lib/docker/overlay2/ec1c196845787e5915c97cfd23327c999770620d6c50a6c8673a9bba75cd972c/diff:/var/lib/docker/overlay2/37bb5a66cc8a810ae5d45da1857eee3abdc7710d7b1418689374ea82a9bcbed1/diff",
"MergedDir": "/var/lib/docker/overlay2/15b2bdf959bc8dbec42d3c9fe17cca9f117b4422bcd6dd4340ece966403cca54/merged",
"UpperDir": "/var/lib/docker/overlay2/15b2bdf959bc8dbec42d3c9fe17cca9f117b4422bcd6dd4340ece966403cca54/diff",
"WorkDir": "/var/lib/docker/overlay2/15b2bdf959bc8dbec42d3c9fe17cca9f117b4422bcd6dd4340ece966403cca54/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:ec4a38999118b78eab6899b913a548cb0b2c9b68fd05aff846a56b628b597f38",
"sha256:f6011769641091803058f3d7f21ae44fe06946be14914ff729844e7ef94ab15c",
"sha256:797a7c0590e0dd31ea2f40f5139ced40ad710a2db563718e77595c615ca0ae1a",
"sha256:44148371c697ea6420ffeca0559033fbfe1a0e59e4b83edba4768342238b2782",
"sha256:08cc615b0242bb13dd9b7f009b58207bd1503abdab48e4331502aff96e68e05a",
"sha256:91fd2792fa749b55021a242357fb011906acc3a1700f0c3a69aaa3528a28ed2a",
"sha256:c6f5e936b72e67397221ad74dfa6e8c8abc49ffdd7b71895e944e85136ba41f2",
"sha256:502fe165ca51e178a89124cf2e983441b277c2aaf7a6827ac2a68bffa8eb5614",
"sha256:d143ce802d49093b163bb563cce983f7bf646772640222d46d970eb58ac60257",
"sha256:3b9d0f00a1f1363ce936363ea3eb44814d00206294cb2b0fa4a7b386337308d6",
"sha256:1c63491fb3e24db39b4800b47dace4a51a8cfcfb116ec3982083e0833579a635",
"sha256:52610ecb2383eb202f6f91452d5d37d9d18bf667c66f1b20f7ea529f9b41af63",
"sha256:b607559c37130a2404f38b7362f74f8a81fbd3ce784f705ac701333c529cc906",
"sha256:99794eb8d59699231639069ecbc45dad854bf191e24e95b39086f59956a5d2ee",
"sha256:1101a899b39c1cb0a7b84602a1ef8b1be72c8fedfdfa1a3f02d387799e16e0e1",
"sha256:7d8179c1a0f9fc53d42ff599836a78fba7caf7f86a4f7ae653e975dfd4374137",
"sha256:72e4c41a2afc921626afbac658d8359e0fef5eea1e4ead5018821434c1d16e3f",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:85ec869f6cbf9b5b21f39b4b5a83400bb5723fc37933e14c01846f581e8ee2e1"
]
},
"Metadata": {
"LastTagTime": "2026-03-12T22:30:29.996455489+08:00"
}
}