【发布时间】:2019-02-20 15:31:12
【问题描述】:
我在 alpine linux 容器中有一个小型 python 应用程序,这里是 dockerfile:
FROM alpine
# basic flask environment
RUN apk add --no-cache bash git nginx uwsgi uwsgi-python py2-pip \
&& pip2 install --upgrade pip \
&& pip2 install flask
# application folder
ENV APP_DIR /app
ENV FLASK_APP app.py
# app dir
RUN mkdir ${APP_DIR} \
&& chown -R nginx:nginx ${APP_DIR} \
&& chmod 777 /run/ -R \
&& chmod 777 /root/ -R
VOLUME [${APP_DIR}]
WORKDIR ${APP_DIR}
# copy config files into filesystem
COPY nginx.conf /etc/nginx/nginx.conf
COPY app.ini /app.ini
COPY entrypoint.sh /entrypoint.sh
RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
COPY ./cert.pem /usr/local/share/ca-certificates/mycert.pem
COPY ./key.pem /usr/local/share/ca-certificates/mykey.pem
COPY ./ssl_password_file.pass /etc/keys/global.pass
RUN update-ca-certificates
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["/entrypoint.sh"]
这在 2 周前运行良好,但是当我最近尝试重建它时,我收到了这个错误:
WARNING: ca-certificates.crt does not contain exactly one certificate or CRL: skipping
WARNING: ca-cert-mykey.pem.pem does not contain exactly one certificate or CRL: skipping
所以我检查了这些文件,发现由于某种原因,现在文件 ca-certificates.crt 现在有一个证书链。 我在堆栈溢出时找到了this:
/etc/ssl/certs/ca-certificates.crt 实际上是附加每个 来自 /usr/local/share/ca-certificates 的个人证书。
但是发生了什么变化?为什么这是一个问题? 所以我尝试恢复到旧版本的 alpine linux - 同样的问题。 我尝试重新创建证书,我尝试从容器中删除一大堆证书,我在更新之前检查了 pem 文件以确保它们只是一个证书,并且显然是在运行之后直接
RUN update-ca-certificates
出现许多证书。 帮忙?
【问题讨论】:
标签: docker ssl dockerfile alpine