如何将dos2unix添加到基于Alpine的docker容器中?

时间:2017-02-23 18:55:10

标签: docker dockerfile alpine

我有以下dockerfile:

FROM haproxy:alpine

RUN apk --update add bash && apk --no-cache add dos2unix rsyslog supervisor wget curl ruby which py-setuptools py-pip && pip install awscli && chmod +x /*.sh

COPY *haproxy.cfg /etc/
COPY supervisord.ini /etc/
COPY rsyslog.conf /etc/

COPY entrypoint.sh /
RUN dos2unix /entrypoint.sh && apt-get --purge remove -y dos2unix

ENTRYPOINT ["/entrypoint.sh"]

EXPOSE 9999

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.ini"]

然而,当我构建这个时,我得到:

fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  dos2unix (missing):
    required by: world[dos2unix]

我可以看到这里的包存在:the laravel docs

我做错了什么?

1 个答案:

答案 0 :(得分:3)

在您自己的链接中,dos2unix(仅限2017年2月)仅在testing,而不在maincommunity。来自the relevant documentation -

  

如果您的配置中仅启用了主存储库,则apk将不包含其他存储库中的包。要从边缘/测试存储库安装软件包而不更改存储库配置文件,请使用以下命令。这将告诉apk使用该特定存储库。

apk add cherokee --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted

在这种情况下,您可以将dos2unix替换为cherokee