标签: alpine-linux

在 alpine 容器中使用 confluence-kafka python 客户端

我正在尝试运行一个与 kafka 通信的简单 python 应用程序。我正在寻找一个高山容器。这是我当前的 dockerfile(它不是最佳的......只是想让事情暂时正常工作)。

FROM python:3.6-alpine
MAINTAINER Ashic Mahtab (ashic@live.com)

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk update && apk --no-cache add librdkafka


COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt

COPY api /usr/src/app/api
COPY static /usr/src/app/static

CMD ["python", "api/index.py"]
Run Code Online (Sandbox Code Playgroud)

需求文件中有 confluence-kafka 。构建失败

OK: 8784 distinct packages available
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  so:libcrypto.so.41 (missing):
    required by:
                 librdkafka-0.9.4-r1[so:libcrypto.so.41]
                 librdkafka-0.9.4-r1[so:libcrypto.so.41]
                 librdkafka-0.9.4-r1[so:libcrypto.so.41]
  so:libssl.so.43 (missing):
    required by:
                 librdkafka-0.9.4-r1[so:libssl.so.43]
                 librdkafka-0.9.4-r1[so:libssl.so.43]
                 librdkafka-0.9.4-r1[so:libssl.so.43] …
Run Code Online (Sandbox Code Playgroud)

apache-kafka docker kafka-python alpine-linux confluent-platform

3
推荐指数
1
解决办法
6624
查看次数

ImportError:alpine-docker 中未安装 _imagingft C 模块

我正在尝试像这样导入和使用 python 枕头库:

from urllib.request import urlopen
import PIL
from PIL import Image, ImageFont, ImageDraw
import re
image = Image.open(urlopen("http://randomurl.com/randomimage.jpg"))
draw = ImageDraw.Draw(image)
font = ImageFont.truetype("sans-serif.ttf", 16)
draw.text((0, 0),"This is the future liberals want",(255,255,255),font=font)
image.save('sample-out.jpg')
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

/opt/bot/app # python cli.py 
Retrieving column Image ID on worksheet History
Traceback (most recent call last):
  File "cli.py", line 38, in <module>
    font = ImageFont.truetype("sans-serif.ttf", 16)
  File "/usr/local/lib/python3.7/site-packages/PIL/ImageFont.py", line 260, in truetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
  File "/usr/local/lib/python3.7/site-packages/PIL/ImageFont.py", line 135, in __init__ …
Run Code Online (Sandbox Code Playgroud)

python python-imaging-library python-3.x docker alpine-linux

3
推荐指数
1
解决办法
3129
查看次数

Alpine 上哪个库包含 cdefs.h?

我正在尝试在运行 Alpine 的 Docker 映像上编译一些代码。然而,gcc 由于fatal error: sys/cdefs.h: No such file or directory. Google 上的人说要做

apt install libc6-dev-i386 gcc-multilib

我翻译成apk add libc6-dev-i386 gcc-multilib. 但是,然后我就得到了错误。ERROR: unsatisfiable constraints:对于这两个库。

我的 Dockerfile 如下:

FROM alpine

ADD . .
RUN apk update && apk add gcc make openssl libressl-dev musl-dev && make

ENTRYPOINT ./restrictions-crack "$hash" "$salt"
Run Code Online (Sandbox Code Playgroud)

gcc docker alpine-linux

3
推荐指数
1
解决办法
1785
查看次数

在 docker alpine 镜像上启用 acl

我没有找到基于alpine 的示例 docker 镜像,它会自动安装 acl 包并在主挂载点上启用它/

我找到了 Ubuntu 的手动程序: https: //help.ubuntu.com/community/FilePermissionsACLs ,我想它也适用于 alpine,但没有 acl-ready alpine docker 镜像。

你能帮我解决这个问题吗?

更新:我发现这个链接指定使用 --storage-driver=devicemapper 选项: How to use setfacl inside a Docker container? 我得检查一下缺点

谢谢和问候,克里斯托夫

acl docker alpine-linux

3
推荐指数
1
解决办法
6011
查看次数

如何在 Alpine docker 容器上使用 openjdk 14 启用 ECDHE 密码?

我必须用于我的应用程序的一个 API 仅支持用于 TLS 连接的 ECDHE 密码。

PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|     compressors:
|       NULL
|     cipher preference: server
|_  least strength: A
Run Code Online (Sandbox Code Playgroud)

Nmap 完成:15.16 秒内扫描 1 个 IP 地址(1 个主机启动)

看起来我的应用程序不支持这些,我得到:

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
Run Code Online (Sandbox Code Playgroud)

这是我可以在日志中看到的密码列表:

"ClientHello": {
  "client version" …
Run Code Online (Sandbox Code Playgroud)

java docker tls1.2 alpine-linux

3
推荐指数
1
解决办法
968
查看次数

高山:“服务‘crond’不存在”

我正在尝试运行一个 Node 12.13.0 Alpine Docker 容器,该容器每 15 分钟运行一次脚本。根据Alpine 的 wiki cron 部分,我应该能够在 Dockerfile 中添加一个 RUN 任务来通过以下方式将 crond 作为服务运行:

rc-service crond start && rc-update add crond
Run Code Online (Sandbox Code Playgroud)

然而,这会返回一个错误:

rc-service: service `crond' does not exist
Run Code Online (Sandbox Code Playgroud)

运行一个单独的 Docker 容器只是为了针对这个 Docker 容器运行 cron 任务不是一种选择。这个容器已经非常轻量级了,并没有做太多事情。

这是我的 Dockerfile:

FROM node:12.13.0-alpine

RUN apk add --no-cache tini openrc

WORKDIR /opt/app

COPY script.sh /etc/periodic/15min/

RUN chmod a+x /etc/periodic/15min/script.sh

RUN rc-service crond start && rc-update add crond

COPY . .

RUN chmod a+x startup.sh

ENTRYPOINT ["/sbin/tini", "--"] …
Run Code Online (Sandbox Code Playgroud)

cron docker alpine-linux

3
推荐指数
1
解决办法
3187
查看次数

为什么 OpenJDK 发布的新 Java 8 镜像不再基于 Alpine,而是基于 Debian 10(Buster)?

我浏览通过OpenJDK的发布最新图片:https://hub.docker.com/layers/openjdk/library/openjdk/8u252-jre-slim-buster/images/sha256-01dfdeac537b9d9adcb2399028fba063733a77186c5264e6b059987002c0e48c?context=explore个个switchedt

所有新的 Java 8 镜像都使用基于 Debian 的,是否有任何官方声明表明 OpenJDK 从 Alpine 迁移到 Debian,为什么?

为什么 OpenJDK 发布的新 Java 8 镜像不再基于 Alpine,而是基于 Debian 10(Buster)?

java alpine-linux debian-buster

3
推荐指数
1
解决办法
3163
查看次数

如何在没有密码的情况下在 Alpine Linux 中通过 ssh 登录?

我用的是安卓手机。我编写python程序并在Termux中运行该程序。但是有一些lib不能在Android手机中安装或使用,例如sklearn和tensorflow。所以我决定尝试在我的编程环境中使用 docker 容器。我创建了一个 docker 镜像并将其更新到 docker-hub:zwdnet/mypython。然后我在 Termux 中安装了 qemu?并在 Termux 中安装了 Alpine Linux(alpine-virt-3.10.1-x86_64)。我按照这个页面的方法(是中文博客,不是英文):https : //stageguard.top/2019/08/15/run-docker-on-qemu-alpine/#1-Docker 之后,我使用命令

qemu-system-x86_64 -hda python.img -boot c -m 4096 -netdev user,id=nde1,hostfwd=tcp::2222-:22 -device e1000,netdev=nde1,id=d-net1 -nographic &
Run Code Online (Sandbox Code Playgroud)

在后面启动 alpine linux 并

ssh root@localhost -p 2222
Run Code Online (Sandbox Code Playgroud)

登录。(然后我安装了docker并运行容器成功,这是另一个问题。)现在我想不输入密码登录Apline linux。首先我使用

ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

生成密钥,并使用

ssh-copy-id -i ./mykey.pub root@localhost -P 2222
Run Code Online (Sandbox Code Playgroud)

将 pub 密钥发送到 Apline linux 并更改 /etc/ssh/sshd_config 文件。最后我重新启动了 sshd 服务并注销。但是当我再次登录时,它要求我再次输入密码。我想可能是因为我用 root 登录。所以我登录并创建一个新用户名,并重复前面的操作符。但我失败了。ssh 要求我再次输入密码。这是我的 ~/.ssh 模型和密钥文件。

$ssh zym@localhost -p 2222 "ls -la"
zym@localhost's password:
total 20
drwxr-sr-x    3 1000     zym           4096 …
Run Code Online (Sandbox Code Playgroud)

linux passwords ssh alpine-linux termux

3
推荐指数
1
解决办法
6907
查看次数

将 ENV 传递给运行单个命令的 Docker 容器

这打印空白:

docker run --rm --env HELLO="world" ubuntu:18.04 bash -c "echo $HELLO"
Run Code Online (Sandbox Code Playgroud)

但是这有效:

docker run --rm -it --env HELLO="world" ubuntu:18.04 bash
# in the container
echo $HELLO
Run Code Online (Sandbox Code Playgroud)

HELLO 不过似乎传递给了容器:

docker run --rm --env HELLO="world" ubuntu:18.04 env
Run Code Online (Sandbox Code Playgroud)

为什么第一个命令没有看到HELLO?我错过了什么?

bash ubuntu environment-variables docker alpine-linux

3
推荐指数
1
解决办法
1053
查看次数

在 Alpine 中安装较旧的软件包版本

所以最近(9 月 5 日)Alpine Linux 包 repo 更新为 postgresql-client 12.4

我在我的 Dockerfile ( apk add postgresql-client=~12.3) 中引用了 12.3 版。现在不能安装那个版本吗?

我想更新我的时间和条款,为什么我现在要被迫更新?我可以添加另一个存储库以使用旧版本吗?

谢谢

alpine-linux postgresql-12

3
推荐指数
1
解决办法
3174
查看次数