尝试使用 alpine 映像构建 dockerfile 并安装一组目录。这是下面的脚本。在 mkdir 之前它工作正常,但不会更改为 /opt 来下载 git 代码。
git 代码仅下载到 /src。不确定为什么 cd /opt 命令不起作用。
FROM alpine
ADD . /src
WORKDIR /src
RUN apk update
RUN apk add git
RUN mkdir /opt
RUN cd /opt && git clone --recursive https://github.com/Azure/azure-iot-sdk-python.git
RUN ls -al
RUN cd azure-iot-sdk-python && ls -al build_all/linux
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 php gettext()与 docker image php:7.2-fpm-alpine3.7 一起使用
我的 Dockerfile 是
FROM php:7.2-fpm-alpine3.7
RUN apk add --update --no-cache icu-dev gettext gettext-dev \
&& docker-php-ext-install intl gettext
Run Code Online (Sandbox Code Playgroud)
但它不翻译。
我发现扩展没问题,但语言环境有问题。Alpine 无法正确支持语言环境。
有没有办法使用locales(和 php gettext())与 alpine docker 图像?
我在我的容器中使用 alpine linux。不久前,我遇到了同样的错误,在 pkg-config 搜索路径中找不到 Package cairo。Node js 安装画布问题我将以下代码片段添加到我的 Dockerfile 中:
\n\n # Install cairo for one of our frontend dependencies\nRUN apk add --update --no-cache cairo \\\n && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*\nRun Code Online (Sandbox Code Playgroud)\n\n这使得错误消失了(至少根据我的记忆,已经几个月了)。
\n\n今天运行的时候又出现这个错误docker-compose exec web yarn watch。这是错误的完整输出:
[4/4] Building fresh packages...\nsuccess Installed "node-gyp@3.8.0" with binaries:\n[1/2] \xe2\xa0\xa0 canvas\nwarning Error running install script for optional dependency: "/var/www/html/node_modules/canvas: Command failed.\nExit code: 1\nCommand: node-gyp rebuild\nArguments: \nDirectory: /var/www/html/node_modules/canvas\nOutput:\ngyp info it worked if it ends with ok\ngyp …Run Code Online (Sandbox Code Playgroud) 在构建 Docker 映像时,作为最佳实践,我知道我不应该使用该root用户,但我在使用我创建的用户时遇到了困难。
在这里我的Dockerfile
FROM alpine:3.9.2
RUN addgroup -S cetacean && adduser -S mobydick -G cetacean
USER mobydick
RUN apk update
Run Code Online (Sandbox Code Playgroud)
这是我运行时遇到的错误
错误:无法锁定数据库:权限被拒绝
错误:无法打开 apk 数据库:权限被拒绝
我应该做什么才能使用安装包mobydick?
我在 alpine linux 容器内编译了一个简单的 hello world C 程序,并将其复制到我的 ubuntu 主机上。令我惊讶的是,我无法在我的 ubuntu 主机上运行二进制文件。相反,当我尝试执行程序时出现以下错误。
$ /bin/bash ./hello
$ ./hello: ./hello: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)
为什么我不能在 ubuntu 上运行我在 alpine 上编译的程序?
更新 我犯了一个错误,试图将 C 程序作为 bash 脚本运行。然而,在纠正我的错误后,我仍然得到一个错误......
$ ./hello
$ bash: ./hello: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经使二进制可执行文件,所以这不应该是问题。运行在主机上编译的相同程序时不会显示此错误消息。
更新 让我澄清几点。
hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, …Run Code Online (Sandbox Code Playgroud) 背景:
我们安装了节点版本 8,并且在基于 Jenkins alpine 的 docker 映像(在 AWS ECS 中运行)中运行良好。节点 8 安装在 jenkins-alpine docker 镜像中。
然后,又来了一个安装nodejs Jenkins插件的需求,这样自定义版本就可以根据需要使用全局工具配置安装和应用,我们安装了nodejs 10,如下图所示:

Nodejs 插件无法在 jenkins 中运行
然后我尝试在 jenkins 管道中使用 jenkins nodejs 10 插件,如下所示:
#!groovy?
pipeline {
options {
buildDiscarder(logRotator(daysToKeepStr: '5'))
timeout(time: 5, unit: 'MINUTES')
ansiColor('xterm')
}
agent {
label 'jenkins-slave'
}
stages {
stage('Nodejs test') {
steps {
nodejs('NodeJS 10.19.0') {
sh "which node; which npm"
sh "ls -l /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_10.19.0/bin/node"
sh "node -v"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
jenkins 作业失败, …
嗨,我正在努力使用 aws-cli v2 和 Docker 创建 Docker 映像,基于 Alpine:3.11
我正在使用以下命令:
FROM docker:stable #docker is based on Alpine
RUN apk add curl && \
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \
unzip awscliv2.zip && \
./aws/install
RUN aws --version && docker -v
Run Code Online (Sandbox Code Playgroud)
我正在获得这样的输出:
Step 6/6 : RUN aws --version && docker -v
---> Running in 5015c32e62fe
/bin/sh: aws: Permission denied
The command '/bin/sh -c aws --version && docker -v' returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud)
这是一种奇怪的行为。
我正在尝试使用 alpinelinux 3.12 的联机帮助页,使用最新的 3.12 版本,并且:
# apk add man
ERROR: unsatisfiable constraints:
man (missing):
required by: world[man]
Run Code Online (Sandbox Code Playgroud)
奇怪的?apk 添加手册页效果很好。我已启用所有存储库(社区、边缘等)apk 更新,但仍然找不到人?
知道如何在 dockerfile 中安装 php Ldap 扩展
从 php:7.2-fpm-alpine
我尝试了以下
RUN docker-php-ext-configure ldap --prefix=/usr/local/php --with-ldap=/usr/lib/i386-linux-gnu
RUN docker-php-ext-install ldap
Run Code Online (Sandbox Code Playgroud)
但是当我构建 docker 时,我收到错误消息
配置:错误:找不到 ldap.h
错误:服务 'php' 无法构建:命令 '/bin/sh -c docker-php-ext-install ldap' 返回非零代码:1
PS:它是高山所以'apt-get'在这里不起作用,而是'apk add'
我正在使用以下 Dockerfile 安装 alpine linux,如下所示,并参考了以下堆栈溢出答案:-如何在 alpine:3.8 中安装 Nodejs v13.0.1?
FROM alpine:3.9
ENV ALPINE_MIRROR "http://dl-cdn.alpinelinux.org/alpine"
RUN echo "${ALPINE_MIRROR}/v3.10/community/" >> /etc/apk/repositories
RUN apk update && apk add glibc nodejs-current --repository="http://dl-cdn.alpinelinux.org/alpine/v3.10/community/"
RUN node --version
Run Code Online (Sandbox Code Playgroud)
节点版本导致错误
Error relocating /usr/bin/node: uv_gettimeofday: symbol not found
Error relocating /usr/bin/node: uv_udp_connect: symbol not found
Error relocating /usr/bin/node: uv_thread_create_ex: symbol not found
Error relocating /usr/bin/node: uv_udp_getpeername: symbol not found
The command '/bin/sh -c node --version' returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud)
如何解决此问题并安装节点 12.4.0-r0?