标签: alpine-linux

更改 docker alpine 中的目录失败

尝试使用 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)

docker dockerfile docker-compose alpine-linux

2
推荐指数
1
解决办法
1万
查看次数

docker 镜像的高山语言环境 (php gettext)

我正在尝试将 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 图像?

php docker alpine-linux

2
推荐指数
1
解决办法
6740
查看次数

'virtual:world' 需要的包 'cairo',未找到

我在我的容器中使用 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/*\n
Run Code Online (Sandbox Code Playgroud)\n\n

这使得错误消失了(至少根据我的记忆,已经几个月了)。

\n\n

今天运行的时候又出现这个错误docker-compose exec web yarn watch。这是错误的完整输出:

\n\n
[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)

node.js alpine-linux

2
推荐指数
1
解决办法
8883
查看次数

以非root用户身份构建Docker镜像

在构建 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

docker alpine-linux

2
推荐指数
1
解决办法
7554
查看次数

为什么我不能在 ubuntu 上运行基于 alpine 的 C 程序?

我在 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)

我已经使二进制可执行文件,所以这不应该是问题。运行在主机上编译的相同程序时不会显示此错误消息。

更新 让我澄清几点。

  • 一个可执行文件构建在 ubuntu 容器中并复制到 ubuntu 主机上。这个可执行文件有效。
  • 另一个可执行文件是使用 alpine 容器构建的,并复制到 ubuntu 主机上。此可执行文件不起作用。
  • 两个可执行文件都设置了它们的可执行位。当我运行 ./hello 时,我会在相关可执行文件所在的目录中执行此操作。
  • 当我在使用 ubuntu 容器编译的可执行文件上运行文件时,我得到以下输出。
hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu gcc alpine-linux

2
推荐指数
1
解决办法
1660
查看次数

带有 jenkins 插件的 Nodejs 在高山图像中不可执行并显示“找不到符号”

背景

我们安装了节点版本 8,并且在基于 Jenkins alpine 的 docker 映像(在 AWS ECS 中运行)中运行良好。节点 8 安装在 jenkins-alpine docker 镜像中。

然后,又来了一个安装nodejs Jenkins插件的需求,这样自定义版本就可以根据需要使用全局工具配置安装和应用,我们安装了nodejs 10,如下图所示: Node JS jenkins 插件

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 作业失败, …

node.js jenkins docker alpine-linux

2
推荐指数
1
解决办法
1537
查看次数

带有 aws-cli v2 和 dind 的 Docker 镜像,基于 Alpine:3.11

嗨,我正在努力使用 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)

这是一种奇怪的行为。

docker aws-cli alpine-linux

2
推荐指数
1
解决办法
2486
查看次数

alpinelinux 3.12 缺少 man 包?

我正在尝试使用 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 更新,但仍然找不到人?

manpage alpine-linux alpine-package-keeper

2
推荐指数
1
解决办法
706
查看次数

如何在 Docker php-fpm alpine 中安装 LDAP

知道如何在 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'

php ldap php-extension docker alpine-linux

2
推荐指数
4
解决办法
4637
查看次数

在 alpine linux 上安装 nodejs 版本 12 时出错

我正在使用以下 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?

linux node.js docker dockerfile alpine-linux

2
推荐指数
1
解决办法
4529
查看次数