标签: alpine-linux

在 Alpine 上编译 Mongo

我正在尝试在 Alpine Linux 上编译 Mongo。

有人知道如何克服这个错误吗?

In file included from src/mongo/util/net/socket_poll.h:20:0,
                 from src/mongo/util/net/sock.cpp:42:
/usr/include/sys/poll.h:1:2: error: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror=cpp]
 #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  ^
cc1plus: all warnings being treated as errors
scons: *** [build/linux2/normal/mongo/util/net/sock.o] Error 1
scons: building terminated because of errors.
Run Code Online (Sandbox Code Playgroud)

linux mongodb busybox alpine-linux

5
推荐指数
1
解决办法
2544
查看次数

Alpine linux,制作自定义 ISO 映像

尝试通过以下方式构建救援 iso

https://wiki.alpinelinux.org/wiki/How_to_make_a_custom_ISO_image

alpine-extended-3.4.3-x86.iso之前安装到硬盘上使用)

当启动新创建的映像时,它会在启动提示后立即抱怨。我应该怎么做才能创建正确的 ISO 映像?

开机画面

linux alpine-linux

5
推荐指数
1
解决办法
2465
查看次数

在 Alpine Docker 容器中收到 [Not Found] 错误,尽管它确实存在

当运行 alpine docker 容器并尝试构建时,我收到这样的错误消息。

/bin/sh: /etc/init.d/postgresql: not found
Run Code Online (Sandbox Code Playgroud)

这是我的 Dockerfile:

FROM alpine:3.5

MAINTAINER hoge

ENV LANG en_US.utf8

ENV PHX_PORT 4000
ENV PHX_DBNAME hoge_db

COPY release.tar.gz /

RUN echo 'http://dl-3.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories

RUN apk update && apk upgrade && \
    apk add --no-cache --virtual .base_deps build-base openssl-dev zlib-dev libxml2-dev wget gnupg ca-certificates && \
    apk add --no-cache readline-dev glib-lang libssl1.0 postgresql postgresql-client && \
    apk add --update binutils && \
    apk add --no-cache sudo && \
    apk --purge del .base_deps && …
Run Code Online (Sandbox Code Playgroud)

linux postgresql docker alpine-linux

5
推荐指数
1
解决办法
1297
查看次数

如何在 alpine Linux Docker 镜像中安装 libwebp

我想为我的 docker 映像安装 libwebp 依赖项。如何使用 docker 文件下载并安装 libwebp?一种方法是您可以下载 libwebp 和 ADD 文件到映像,如下所示。

ADD resources/vts/libwebp-0.4.1-linux-x86-64  /lib/libwebp-0.4.1-linux-x86-64
Run Code Online (Sandbox Code Playgroud)

但我需要通过运行这样的命令来安装它。

RUN apk upgrade -U \ && apk add ca-certificates ffmpeg \ && rm -rf/var/cache/*
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我参考下图来创建我的 docker 文件

FROM openjdk:8-jdk-alpine
Run Code Online (Sandbox Code Playgroud)

docker dockerfile alpine-linux

5
推荐指数
1
解决办法
6491
查看次数

未检测到 Vault 令牌助手?

问题:

我的 docker 镜像中有三个文件,vault:0.10.2位于以下位置:

/home/myuser/token_helper:Go 中的令牌助手二进制文件,根据本文档实现令牌助手接口

/home/myuser/vault_startos.exec("vault", "operator", "init"):运行的Go 脚本os.exec("vault", "server", "-config=myconfig.hcl")

/home/myuser/.vault:令牌帮助程序配置文件指定令牌帮助程序二进制位置,我已导出VAULT_CONFIG_PATH以指向此路径。文件内容如下token_helper = "/home/myuser/token_helper"

我看到的问题是在运行vault_start脚本时出现以下错误:

failed to get token helper: error expanding config path "": exec: "getent": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)

到目前为止已完成的调试

这个错误似乎不正确。which getent返回/usr/bin/getent,并且图像$PATH包含它,证明两者都存在。另外,配置路径不是"",它被设置为/home/myuser/.vault但 Vault 显然将其检测为空。

我已将该错误输出跟踪到Vault 目录中的此文件command: 。$HOME根据该代码块,只有在未设置时才会出错,但我已经确认已$HOME在 shell 中设置了该值。

此外,我已经指定了 Vault 所要求的所有内容,以便根据本文档 …

go devops alpine-linux hashicorp-vault

5
推荐指数
1
解决办法
2979
查看次数

减小 docker 镜像的大小

我正在尝试使用 Docker 将 Craft CMS 部署到zeit/now。它在本地工作,但 zeit 的图像大小限制为100MB. 我的容器目前是176MB.

\n\n

它是一个 Docker 镜像alpine,使用 Craft 所需的nginxphp模块,并使用多阶段构建来构建 Composer 组件,以减少构建工件的大小。

\n\n

这是Dockerfile

\n\n
FROM zeit/wait-for:0.2 as wait\n\n# Build dependencies\nFROM composer:latest as vendor\n\nCOPY composer.json composer.json\nCOPY composer.lock composer.lock\n\nRUN composer install --ignore-platform-reqs --no-interaction --no-plugins --no-scripts --prefer-dist --no-dev\n\nFROM alpine:3.8\n\nLABEL maintainer="Eivind Mikael Lindbr\xc3\xa5ten <eivindml@icloud.com>"\nLABEL description="Minimal Craft CMS Container using nginx."\n\n# install nginx, php, and php extensions for Craft\nRUN apk add --no-cache \\\n    bash \\\n …
Run Code Online (Sandbox Code Playgroud)

php nginx docker alpine-linux craftcms

5
推荐指数
2
解决办法
4237
查看次数

启用 Alpine 在 ARM64 架构上执行 not-musl Java JRE

我的目标是让 Alpine 能够执行非 musl 支持的 JRE。这背后的动机是图像大小缩小,我在压缩 JRE 本身方面取得了一定的进展,但我发现的最小图像是 50M 的 ARM64v8/debian:slim-9。这相当不错,但还不够。我没有找到任何支持 musl 的适用于 ARM64 的 JRE(最高 9)。因此可能的方向是

  1. 拍摄高山影像(约5M)
  2. 使其能够执行 glibc Java 代码(通过安装 glibc APK)
  3. 对生成的镜像运行JRE,希望最终镜像大小小于20M。

这是我的步骤:

我所有的实验都是在真正的 ARM64 硬件上进行的。

使用 jlink 工具将包含缩小模块列表的 OpenJRE 10 文件夹复制到 Apline 映像。

不幸的是,当我尝试运行 ./java --version 时,我得到了

/bin/sh: ./java: not found
Run Code Online (Sandbox Code Playgroud)

我看到 glibc apk 已安装,已添加以下文件夹

/usr/glibc-compat/lib
Run Code Online (Sandbox Code Playgroud)

我所缺少的任何想法将不胜感激。

java glibc docker arm64 alpine-linux

5
推荐指数
1
解决办法
2438
查看次数

如何使用 Linux alpine 3.13 在 Docker 镜像上安装 hdf5

我正在使用 python 3.7.10 (Linux Alpine v 3.13 )构建一个 Docker 镜像,但是在安装过程中使用docker build .hdf5构建镜像时会失败。这是我的 Dockerfile:

FROM python:3.7.10-alpine3.13

RUN mkdir /app
WORKDIR /app
COPY requirements.txt /requirements.txt
ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1
RUN apk add --update --no-cache --virtual .tmp gcc libc-dev linux-headers
RUN apk add --no-cache jpeg-dev zlib-dev mariadb-dev libffi-dev openblas-dev libgfortran lapack-dev build-base openssl-dev
RUN apk add --no-cache hdf5 hdf5-dev
RUN pip install -r /requirements.txt
RUN apk --no-cache del build-base

ENV PYTHONUNBUFFERED 1
COPY . /app/

CMD ["uwsgi", "my_app"]
Run Code Online (Sandbox Code Playgroud)

需求.txt文件:

h5py==2.10.0 …
Run Code Online (Sandbox Code Playgroud)

hdf5 python-3.x docker alpine-linux python-3.7

5
推荐指数
1
解决办法
400
查看次数

即使在 PATH 中,也找不到 Docker Alpine 可执行二进制文件

我有一个高山运行容器,其中包含一些二进制文件 usr/local/bin

当我得到这个输出ls的内容时usr/local/bin

/usr/local/bin # ls
dwg2SVG     dwg2dxf     dwgadd      dwgbmp      dwgfilter   dwggrep     dwglayers   dwgread     dwgrewrite  dwgwrite    dxf2dwg     dxfwrite
Run Code Online (Sandbox Code Playgroud)

这是我所期望的。但是,如果我通过调用它来执行这些二进制文件之一,则会not found从 shell收到错误消息:

/usr/local/bin # dwg2dxf
sh: dwgread: not found
/usr/local/bin # ./dwg2dxf
sh: ./dwgread: not found
Run Code Online (Sandbox Code Playgroud)

我测试了我的$PATH似乎是正确的:

/usr/local/bin # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)

如何使这些二进制文件可调用或“可找到”?我在 Dockerfile 构建中遗漏了什么吗?我想ldconfigalpine 中的命令有问题,但我不确定。

编辑

正如这里的一个答案中所建议的,我执行了file命令,这是输出:

/usr/local/bin # file dwg2dxf
dwgread: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, …
Run Code Online (Sandbox Code Playgroud)

linux shell docker alpine-linux

5
推荐指数
2
解决办法
4353
查看次数

无法从 docker-compose 启动 docker Container - “未知标志:--iidfile”

当我尝试运行“docker-compose up”时,命令提示符会引发以下错误:

$ docker-compose up
Building tomcat
unknown flag: --iidfile
See 'docker build --help'.
ERROR: Service 'tomcat' failed to build
Run Code Online (Sandbox Code Playgroud)

下面是 Dockerfile 和 docker-compose.yml 文件:

$ cat Dockerfile.dev
FROM node:alpine

WORKDIR '/app'

COPY package.json .
RUN npm install
COPY . .

CMD ["npm", "run", "start"] `
Run Code Online (Sandbox Code Playgroud)
$ cat docker-compose.yml
version: '3'
services:
  tomcat:
    restart: always
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "3000:3000"
    volumes:
      - /app/node_modules
      - .:/app
  tests:
    restart: always
    build:
      context: .
      dockerfile: Dockerfile.dev
    volumes:
      - /app/node_modules
      - …
Run Code Online (Sandbox Code Playgroud)

node.js docker docker-compose docker-image alpine-linux

5
推荐指数
1
解决办法
3152
查看次数