标签: alpine-linux

docker 中的 python3 和 pip3

我想在 docker 中使用python 3.xpip3安装一些 python 库。我使用以下命令来执行此操作,但未安装它们。

FROM alpine:latest

RUN apk add python3 py3-pip3 && \
pip3 install --upgrade pip3 && \
pip3 install wget &&\
pip3 install sys &&\
pip3 install threading &&\
pip3 install time &&\
pip3 install requests &&\
pip3 install paho-mqtt &&\
pip3 install logging &&\
rm -rf /var/cache/apk/*

COPY NumSide.py /home/mehdi/Download/NumSide.py

CMD ["python3","/home/mehdi/Download/NumSide.py"]
Run Code Online (Sandbox Code Playgroud)

下面,我得到的错误:

错误:无法满足的约束:py3-pip3(缺失):需要:world[py3-pip3] 命令'/bin/sh -c apk add python3 py3-pip3 && pip3 install --upgrade pip3 && pip3 install wget &&pip3 install …

python pip docker alpine-linux

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

如何从 Docker Image 卸载 APK 和 PIP?

我正在对我的一个 docker 容器进行一些“常识”强化,我的想法表明我可以在安装完所有依赖项后尝试从 Alpine linux 映像中卸载 APK 和 PIP。

我很难找到有关这样做的任何信息。我的想法是容器是短暂的,所以永远不需要在运行的容器中安装任何东西。

有人做过吗?谢谢!

pip docker dockerfile alpine-linux

9
推荐指数
2
解决办法
7705
查看次数

Docker Alpine:加载 MySQLdb 模块时出错

我正在使用MariaDB构建Django应用程序的基于Alpine的图像,但我无法弄清楚应该添加哪个依赖项,以便我的应用程序可以正确连接到数据库。Dockerfile

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
Run Code Online (Sandbox Code Playgroud)

好吧,我以为我做到了。从我在这篇文章中读到的,在这个讨论中mariadb-devAlpine中相当于default-libmysqlclient-dev在基于Debian的系统中。此外,Alpine 中的mysql-client 包只是一个虚拟包(包含mariadb-devmariadb-client等)。这是Dockerfile

# pull official base image
FROM python:3.7-alpine

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# set work directory
WORKDIR /usr/src/cms

# install mysqlclient
RUN apk update \
    && apk add --virtual build-deps gcc python3-dev musl-dev \
    && …
Run Code Online (Sandbox Code Playgroud)

mysql django mariadb docker alpine-linux

9
推荐指数
2
解决办法
6641
查看次数

alpine linux 输出错误“base64: unrecognized option: w”

codecept -c src run acceptance在alpine linux上执行命令时输出如下错误:

无 base64:无法识别的选项:w BusyBox v1.30.1 (2019-06-12 17:51:55 UTC) 多调用二进制。

用法:base64 [-d] [文件]

Base64 编码或解码 FILE 到标准输出 -d 解码数据

我看不到 codecept 正在执行的命令。

我试图在 apk 中添加 base64,但 base64 不存在。

Dockerfile:

FROM node:10-alpine AS node
FROM php:7.1-fpm-alpine

ENV GITHUB_OAUTH_TOKEN test
ENV COMPOSER_ASSET_VERSION 1.3.1
ENV DOCKERIZE_VERSION v0.6.1
ENV PATH=~/.composer/vendor/bin:$PATH

# install packages
RUN apk add -U --no-cache \
        curl-dev \
        libxml2-dev \
        libpng-dev \
        libjpeg-turbo-dev \
        zip \
        libzip-dev \
        unzip \
        gmp-dev \
        python \
        make \ …
Run Code Online (Sandbox Code Playgroud)

php docker codeception alpine-linux

9
推荐指数
1
解决办法
6562
查看次数

错误:在 alpine docker 映像上安装 pip 包时,命令“gcc”失败,退出状态为 1

我正在尝试将我的基本 docker 映像从 centos 7 转换到 alpine,但是在尝试安装 pip 包时收到 gcc 错误。

这是收到的错误的片段:

Successfully built backports.ssl-match-hostname configobj dpkt iniparse IPy kitchen logmatic-python maxminddb NeuroTools procfs pycparser python-json-logger pyudev repoze.lru scandir scapy
Failed to build guppy kiwisolver numpy psutil pygpgme pyliblzma python-ldap pyxattr subprocess32
Installing collected packages: atomicwrites, attrs, backports.functools-lru-cache, backports.ssl-match-hostname, certifi, chardet, six, configobj, configparser, contextlib2, cycler, decorator, dnspython, dpkt, urllib3, elasticsearch, elasticsearch5, elasticsearch6, funcsigs, ipaddress, maxminddb, idna, requests, geoip2, guppy, scandir, pathlib2, more-itertools, zipp, importlib-metadata, iniparse, IPy, kafka, kafka-python, kitchen, …
Run Code Online (Sandbox Code Playgroud)

gcc docker dockerfile alpine-linux alpine-package-keeper

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

如何在 alpine:3.8 中安装 Nodejs v13.0.1?

我正在编写一个 Dockerfile 来 dockerize 一个 php + nodejs 应用程序。所以我从基于 alpine:3.8 的 php:7.2.13-fpm-alpine 图像开始。作为研究,我发现我可以通过命令添加最新的 alpine repositoriy

apk add  --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/main/ nodejs
Run Code Online (Sandbox Code Playgroud)

但是,使用此命令,我只获得了 nodejs v10.16.3 而我想要最新的 (v13.0.1) 是否可以实现它?

node.js docker alpine-linux

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

在 Alpine docker 容器中运行 geckodriver

我正在尝试在 Alpine 3.10 docker 容器内运行 GeckoDriver v0.26.0,特别是python:3.6.6-alpine3.10.

在弄清楚一些事情之后,我碰壁了:

/ # geckodriver --version
Error relocating /usr/bin/geckodriver: __register_atfork: symbol not found
Error relocating /usr/bin/geckodriver: __res_init: symbol not found
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

我是怎么到这里的

首先启动 docker 容器:

docker run -it python:3.6.9-alpine3.10 /bin/sh
Run Code Online (Sandbox Code Playgroud)

然后尝试安装 GeckoDriver

/ # wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
/ # tar -zxf geckodriver-v0.26.0-linux64.tar.gz -C /usr/bin
/ # geckodriver --version
/bin/sh: geckodriver: not found.
Run Code Online (Sandbox Code Playgroud)

真的吗?但我刚刚提取了它......嗯......好吧。它提取正确吗?是$PATH正确的吗?

/ # ls -lah /usr/bin/geckodriver
-rwxr-xr-x    1 1000     1000        6.7M Oct 12 10:19 /usr/bin/geckodriver
/ # echo $PATH …
Run Code Online (Sandbox Code Playgroud)

docker alpine-linux geckodriver

9
推荐指数
1
解决办法
4719
查看次数

在容器中运行保险库时“不允许操作”

我们在 gitlab CI 中的 Alpine Docker 镜像中运行 vault-cli。升级后,当调用 Vault 时,我们会得到这个:

/bin/bash: line 117: /usr/sbin/vault: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

菲利克斯

alpine-linux hashicorp-vault

9
推荐指数
1
解决办法
2384
查看次数

Alpine 在 Kubernetes 中是否有已知的 DNS 问题?

最近,在尝试解决“大”DNS 查询(当答案大于 512M 时)时,我们在 EKS 上遇到了一些基于 Alpine 图像(节点:12.18.1-alpine)的微服务的 DNS 问题。

所以我尝试运行这个脚本来测试 DNS 解析:

var dns = require('dns');
var w3 = dns.lookup('hugedns.test.dziemba.net', function (err, addresses, family) {
  console.log(addresses);
});
Run Code Online (Sandbox Code Playgroud)

每个图像有 2 个不同的场景

  1. 节点:12.18.1-高山
  • 在我的笔记本电脑上运行图像 - 成功解决
  • 在 EKS 1.16 上运行映像 - 无法解决
  1. 节点:12.18.1-slim
  • 在我的笔记本电脑上运行图像 - 成功解决
  • 在 EKS 1.16 上运行镜像 - 成功解决

从我看到的情况来看,Alpine 正在使用 musl(它不支持 DNS 来使用 TCP?)库而不是 glibc,因为 DNS 协议使用的是 UDP,并且仅在查询大于 512M 时才尝试回退到 TCP。所以我的理论是这是根本原因,但由于它对我有用并且在 EKS 上失败让我想知道问题在哪里可以传递......

有什么想法吗?

EKS v1.16 coredns:v1.6.6

BTW,这是我的第一篇文章,如果需要任何信息,请告诉我

dns tcp docker kubernetes alpine-linux

9
推荐指数
1
解决办法
3237
查看次数

NGINX:“客户端在读取客户端请求行时发送了无效方法”

为 Nginx 设置 SSL 并发出请求后,我收到带有神秘消息的乱码响应client sent invalid method while reading client request line

我在 Alpine Docker 容器中使用 Let's Encrypt 生成了证书(对于上下文,与错误无关)。

这是一个屏幕截图:

客户端在读取客户端请求行时发送了无效方法

简化的 Nginx 虚拟主机配置如下:

server {

    listen 443;

    ssl_certificate /vsdroot/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /vsdroot/letsencrypt/live/yourdomain.com/privkey.pem;

    ssl_dhparam /vsdroot/letsencrypt/ssl-dhparams.pem;
    include /vsdroot/letsencrypt/options-ssl-nginx.conf;

    root /vsdroot;

    location / {
        index index.html;
    }
Run Code Online (Sandbox Code Playgroud)

安全注意事项:我的 SSL 密钥位于 Nginx 文档根目录内,仅用于本地测试,请勿在生产环境或任何地方执行此操作!

nginx docker alpine-linux

9
推荐指数
1
解决办法
8537
查看次数