解决了哇,这些家伙很快......基本上就是这个https://github.com/pyca/cryptography/issues/2750事实证明,openssl的安全更新已经发布(DROWN Attack),并且该更新包含了一个意想不到的功能签名更改导致不兼容,所以这对我来说只是运气不好.
我需要pip install cryptography在运行Alpine Linux的Docker容器中使用.实际上,它是另一个模块,service_identity但问题在于cryptography模块,它是一个依赖项.
我有以下Dockerfile
FROM alpine:3.3
RUN apk --update add build-base libffi-dev openssl-dev python-dev py-pip
RUN pip install cryptography
Run Code Online (Sandbox Code Playgroud)
失败,出现以下错误
generating cffi module 'build/temp.linux-x86_64-2.7/_openssl.c'
building '_openssl' extension
creating build/temp.linux-x86_64-2.7/build
creating build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7
gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o
build/temp.linux-x86_64-2.7/_openssl.c:726:6: error: conflicting types for 'BIO_new_mem_buf'
BIO *BIO_new_mem_buf(void *, int);
^
In file included from /usr/include/openssl/asn1.h:65:0,
from build/temp.linux-x86_64-2.7/_openssl.c:434:
/usr/include/openssl/bio.h:692:6: note: previous declaration of 'BIO_new_mem_buf' …Run Code Online (Sandbox Code Playgroud) 我开始使用基本映像errordeveloper/oracle-jdk.此Dockerfile显示在此处供参考:
FROM progrium/busybox
MAINTAINER Ilya Dmitrichenko <errordeveloper@gmail.com>
RUN opkg-install curl ca-certificates
ENV JAVA_HOME /usr/jdk1.8.0_31
RUN curl \
--silent \
--location \
--retry 3 \
--cacert /etc/ssl/certs/GeoTrust_Global_CA.crt \
--header "Cookie: oraclelicense=accept-securebackup-cookie;" \
"http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-linux-x64.tar.gz" \
| gunzip \
| tar x -C /usr/ \
&& ln -s $JAVA_HOME /usr/java \
&& rm -rf $JAVA_HOME/src.zip $JAVA_HOME/javafx-src.zip $JAVA_HOME/man
ENV PATH ${PATH}:${JAVA_HOME}/bin
ENTRYPOINT [ "java" ]
CMD [ "-version" ]
Run Code Online (Sandbox Code Playgroud)
我想把它移到Alpine Linux,所以做了以下更改:
FROM alpine
MAINTAINER Ilya Dmitrichenko <errordeveloper@gmail.com>
RUN apk --update upgrade && apk add …Run Code Online (Sandbox Code Playgroud) 我在运行时遇到意外错误docker build,我说意外是因为我已经有一段时间没有更改了Dockerfile,两周前最后一次它工作得很好,但现在我收到以下错误:
无法在网桥上创建端点optimistic_spence:无法添加主机(veth9fc3a03)<=>沙箱(veth15abfd6)对接口:不支持操作
如果有任何帮助:
docker pssudo systemctl status docker)docker build -t user/repo:tag .Dockerfile好像:
FROM alpine:3.4
LABEL version="current version"
LABEL description="A nice description."
LABEL maintainer="my@email.com"
RUN apk update && apk add \
gcc \
g++ \
make \
git \
&& git clone https://gitlab.com/user/repo.git \
&& cd repo \
&& make \
&& cp program /bin \
&& rm …Run Code Online (Sandbox Code Playgroud) 我使用以下命令在 Alpine Docker 上安装了 Wkhtmltopdf:
apk add --no-cache wkhtmltopdf
但是,当我尝试运行 wkhtmltopdf 时,我得到:
/usr/bin/wkhtmltopdf "test.html" "test.pdf"
Cannot mix incompatible Qt library (version 0x50c03) with this library (version 0x50c00)
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
编辑:
似乎问题是其他一些软件包安装了不兼容的 qt 版本。这是我的 Dockerfile:
RUN apk --no-cache update \
&& apk --no-cache upgrade \
&& apk add --no-cache \
mysql-client \
php7-mysqli \
php7-pdo \
freetype \
libpng \
freetype-dev \
libpng-dev \
jpeg-dev \
libjpeg \
libjpeg-turbo-dev \
wget \
zlib-dev \
ttf-freefont \
fontconfig \
xvfb …Run Code Online (Sandbox Code Playgroud) 我正在尝试清除未使用的依赖项以减小图像大小。
Ubuntu 镜像中解决了这个问题
sudo-apt autoremove
Run Code Online (Sandbox Code Playgroud)
请帮我了解在 Alpine 中使用的命令。
因为我想运行 Puppeteer@1.19 但在 page.pdf() 中遇到错误。
刚刚提到的一些 blob 将 Chromium 从版本 76 降级到 73。如何使用 node:alpine-12 在 Dockerfile 中做到这一点?谢谢
以下是我的设置(铬版本为 76):
FROM node:12-alpine
##########
## Setting for using Puppeteer (for using node:XX-alpine)
##########
ENV CHROME_BIN="/usr/bin/chromium-browser"\
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
##########
## Update and Install packages
##########
RUN set -x \
&& apk update \
&& apk upgrade \
&& echo "127.0.0.1 localhost" >> /etc/hosts \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" > /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
# add …Run Code Online (Sandbox Code Playgroud) 有没有办法在安装某些软件包时禁用 SSL 验证?
我找到了如何将我的证书添加到受信任的证书中,但我宁愿禁用此检查。
我需要它来避免以下错误:
SSL routines:tls_process_server_certificate:certificate verify failed
Run Code Online (Sandbox Code Playgroud) 我一直在尝试安装miniconda在 Alpine linux docker 映像上。我失败的最小“工作”示例可以用 Docker 重现,如下所示:
docker run --rm -it alpine sh
/ # apk update && apk add ca-certificates wget && update-ca-certificates
/ # wget https://repo.continuum.io/miniconda/Miniconda3-4.3.27-Linux-x86_64.sh -O ~/miniconda.sh
/ # sh miniconda.sh -b
PREFIX=/root/miniconda3
installing: python-3.6.2-h02fb82a_12 ...
/root/miniconda.sh: line 361: /root/miniconda3/pkgs/python-3.6.2-h02fb82a_12/bin/python: not found
Run Code Online (Sandbox Code Playgroud)
但是,它查找的文件在那里:
/ # ls /root/miniconda3/pkgs/python-3.6.2-h02fb82a_12/bin/python
/root/miniconda3/pkgs/python-3.6.2-h02fb82a_12/bin/python
Run Code Online (Sandbox Code Playgroud)
我将不胜感激对此错误的一些见解。我不知道接下来要尝试什么
我们在 gitlab CI 中的 Alpine Docker 镜像中运行 vault-cli。升级后,当调用 Vault 时,我们会得到这个:
/bin/bash: line 117: /usr/sbin/vault: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
菲利克斯
最近,在尝试解决“大”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 个不同的场景
从我看到的情况来看,Alpine 正在使用 musl(它不支持 DNS 来使用 TCP?)库而不是 glibc,因为 DNS 协议使用的是 UDP,并且仅在查询大于 512M 时才尝试回退到 TCP。所以我的理论是这是根本原因,但由于它对我有用并且在 EKS 上失败让我想知道问题在哪里可以传递......
有什么想法吗?
EKS v1.16 coredns:v1.6.6
BTW,这是我的第一篇文章,如果需要任何信息,请告诉我
alpine-linux ×10
docker ×8
linux ×2
anaconda ×1
busybox ×1
certificate ×1
chromium ×1
dns ×1
dockerfile ×1
kubernetes ×1
node.js ×1
openssl ×1
puppeteer ×1
python ×1
ssl ×1
tcp ×1
wkhtmltopdf ×1