- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有现有的非 Alpine dind docker 镜像?
绑定(bind)安装主机的 docker 套接字对我不起作用。我需要适当的努力。 Docker 的 dind 图像似乎都是基于 Alpine 的,这对我也不起作用。
最佳答案
不完全是您问题的答案,但可能会解决您的需求:
我假设您不需要非 Alpine,而是支持 GLIBC 的图像。
我想要一个用于 Gitlab CI 的支持 Docker-in-Docker 的图像,它将具有 OpenJDK 12。此类镜像尚不可用 - AdoptOpenJDK 镜像没有 DinD,官方 docker:*
镜像无法安装正常的 OpenJDK。
所以我将 adoptopenjdk:12
与 docker:stable
结合起来,它似乎可以工作。
docker build --label docker-with-openjdk12 .
# ------------------------------------------------------------------------------
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
# ------------------------------------------------------------------------------
#
# Licensed 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
#
# https://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 docker:stable
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
RUN apk add --no-cache --virtual .build-deps curl binutils \
&& GLIBC_VER="2.29-r0" \
&& ALPINE_GLIBC_REPO="https://github.com/sgerrand/alpine-pkg-glibc/releases/download" \
&& GCC_LIBS_URL="https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-9.1.0-2-x86_64.pkg.tar.xz" \
&& GCC_LIBS_SHA256="91dba90f3c20d32fcf7f1dbe91523653018aa0b8d2230b00f822f6722804cf08" \
&& ZLIB_URL="https://archive.archlinux.org/packages/z/zlib/zlib-1%3A1.2.11-3-x86_64.pkg.tar.xz" \
&& ZLIB_SHA256=17aede0b9f8baa789c5aa3f358fbf8c68a5f1228c5e6cba1a5dd34102ef4d4e5 \
&& curl -LfsS https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub \
&& SGERRAND_RSA_SHA256="823b54589c93b02497f1ba4dc622eaef9c813e6b0f0ebbb2f771e32adf9f4ef2" \
&& echo "${SGERRAND_RSA_SHA256} */etc/apk/keys/sgerrand.rsa.pub" | sha256sum -c - \
&& curl -LfsS ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-${GLIBC_VER}.apk > /tmp/glibc-${GLIBC_VER}.apk \
&& apk add /tmp/glibc-${GLIBC_VER}.apk \
&& curl -LfsS ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk > /tmp/glibc-bin-${GLIBC_VER}.apk \
&& apk add /tmp/glibc-bin-${GLIBC_VER}.apk \
&& curl -Ls ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-i18n-${GLIBC_VER}.apk > /tmp/glibc-i18n-${GLIBC_VER}.apk \
&& apk add /tmp/glibc-i18n-${GLIBC_VER}.apk \
&& /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 "$LANG" || true \
&& echo "export LANG=$LANG" > /etc/profile.d/locale.sh \
&& curl -LfsS ${GCC_LIBS_URL} -o /tmp/gcc-libs.tar.xz \
&& echo "${GCC_LIBS_SHA256} */tmp/gcc-libs.tar.xz" | sha256sum -c - \
&& mkdir /tmp/gcc \
&& tar -xf /tmp/gcc-libs.tar.xz -C /tmp/gcc \
&& mv /tmp/gcc/usr/lib/libgcc* /tmp/gcc/usr/lib/libstdc++* /usr/glibc-compat/lib \
&& strip /usr/glibc-compat/lib/libgcc_s.so.* /usr/glibc-compat/lib/libstdc++.so* \
&& curl -LfsS ${ZLIB_URL} -o /tmp/libz.tar.xz \
&& echo "${ZLIB_SHA256} */tmp/libz.tar.xz" | sha256sum -c - \
&& mkdir /tmp/libz \
&& tar -xf /tmp/libz.tar.xz -C /tmp/libz \
&& mv /tmp/libz/usr/lib/libz.so* /usr/glibc-compat/lib \
&& apk del --purge .build-deps glibc-i18n \
&& rm -rf /tmp/*.apk /tmp/gcc /tmp/gcc-libs.tar.xz /tmp/libz /tmp/libz.tar.xz /var/cache/apk/*
ENV JAVA_VERSION jdk-12.0.2+10
RUN set -eux; \
apk add --virtual .fetch-deps curl; \
ARCH="$(apk --print-arch)"; \
case "${ARCH}" in \
aarch64|arm64) \
ESUM='855f046afc5a5230ad6da45a5c811194267acd1748f16b648bfe5710703fe8c6'; \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10/OpenJDK12U-jdk_aarch64_linux_hotspot_12.0.2_10.tar.gz'; \
;; \
armhf) \
ESUM='9fec85826ffb7b2b2cf2853a6ed3e001b528ed5cf13e435cd13026398b5178d8'; \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10/OpenJDK12U-jdk_arm_linux_hotspot_12.0.2_10.tar.gz'; \
;; \
ppc64el|ppc64le) \
ESUM='4b0c9f5cdea1b26d7f079fa6478aceebf1923c947c4209d5709c0869dd71b98f'; \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10/OpenJDK12U-jdk_ppc64le_linux_hotspot_12.0.2_10.tar.gz'; \
;; \
s390x) \
ESUM='9897deeaf7a2c90374fbaca8b3eb8e63267d8fc1863b43b21c0bfc86e4783470'; \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10/OpenJDK12U-jdk_s390x_linux_hotspot_12.0.2_10.tar.gz'; \
;; \
amd64|x86_64) \
ESUM='1202f536984c28d68681d51207a84b6c76e5998579132d3fe1b8085aa6a5f21e'; \
BINARY_URL='https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10/OpenJDK12U-jdk_x64_linux_hotspot_12.0.2_10.tar.gz'; \
;; \
*) \
echo "Unsupported arch: ${ARCH}"; \
exit 1; \
;; \
esac; \
curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
mkdir -p /opt/java/openjdk; \
cd /opt/java/openjdk; \
tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
apk del --purge .fetch-deps; \
rm -rf /var/cache/apk/*; \
rm -rf /tmp/openjdk.tar.gz;
ENV JAVA_HOME=/opt/java/openjdk \
PATH="/opt/java/openjdk/bin:$PATH"
CMD ["jshell"]
关于docker - 非 Alpine dind docker 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38602212/
我们最近在 docker-image 中迁移到 jenkins 并不是那么顺利。 我们有一个(过于?)复杂的设置,其中一个 docker 容器启动一个新容器,并且之前通过共享主机文件夹与新容器共享数据
我面对这个奇怪的问题,无法解释原因。 $ docker run -d --name dind --privileged --net=host -v `pwd`:/app -w /app docker:
在运行docker:dind时,我无法使用docker login命令和任何其他docker命令。 我的用例是我有一个Nexus Docker注册表,并且试图通过GitLab CI连接到此注册表。 d
我在 docker 中设置了 docker 并尝试挂载文件夹。 假设我有那些我希望与他的 parent 共享的文件夹。在主机上,我在/tmp/dind 中创建了一个名为 foo 的文件。 .主机启动容
我正在尝试将 DinD(Docker 中的 Docker)与我的 Gitlab-CI 构建脚本一起使用,并且无论我更改什么,我都会收到相同的错误。我究竟做错了什么? 错误 Service contai
我正在使用 GitLab 以及 GitLab runner 和 DIND。 配置细节: --------------------------------------- docker run --pri
所以出于某种原因,我想在 docker-compose.yml 中使用 docker:dind。我知道“简单”的方法是直接将套接字安装在图像中(例如:/var/run/docker.sock:/var
我正在尝试使用gitlab CI设置作业以从dockerfile构建docker镜像,但是我在代理后面。 我的.gitlab-ci.yml如下: image: docker:stable variab
我想运行 docker:dind 并获得一个 shell。 如果我运行 docker run --privileged docker:dind sh 它只是退出。 解决方法是运行:docker run
是否有现有的非 Alpine dind docker 镜像? 绑定(bind)安装主机的 docker 套接字对我不起作用。我需要适当的努力。 Docker 的 dind 图像似乎都是基于 Alpin
我创建了两个 GitLab 工作: 测试单元(使用 GitLab 上的 PHP 注册 docker) 声纳(使用 docker 服务运行“Letsdeal/docker-sonar-scanner”)
我一直在尝试在 gitlab-runner 中启动和运行 docker,但不断收到如下错误或 无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护进程。 do
我正在尝试在 GitLab CI 中运行持续集成,包括: 构建 docker 镜像 运行测试 将 docker 镜像推送到注册表 那些在一份工作中运行。我可以毫无问题地做到这一点,直到出现一些需要与数
这个问题不是this的重复问题.该问题中的问题是启动一个 docker 实例,但这个实例与 docker 与 docker-compose 的绑定(bind)有关。 我正在尝试在 docker:din
我正在运行一个 docker-in-docker 容器,它总是使用相同的几个图像。 我想在我的 dind 容器中预先拉动它们,这样我就不必在启动时拉动它们。 我将如何能够实现这一目标? 我正在考虑按照
在 gitlab-ci 中运行以下 CI 脚本时出现错误 docker: command not found。此错误发生在部署阶段的 before_script 期间。 services: - d
我正在尝试在 docker https://hub.docker.com/_/docker 中使用 Docker 在另一个容器中运行一个容器。 . 当我运行以下命令时: docker run --pr
我正在尝试从 gitlab ci 转移到 drone.io。但是我不能让 DIND 像在 gitlab 上那样工作。以上是我在gitlab上的做法。 variables: NODE_ENV: 't
我有一个 Dockerfile,它从安装 texlive-full 包开始,它很大并且需要很长时间。如果我在本地docker build,安装后创建的中间镜像会被缓存,后续构建速度很快。 但是,如果我
我尝试将我的私有(private) docker 镜像与 docker-dind 容器一起运行,以便能够从 Kubernetes 中的私有(private)镜像运行 docker 命令。我唯一的问题是
我是一名优秀的程序员,十分优秀!