我有以下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
我做错了什么?
答案 0 :(得分:3)
在您自己的链接中,dos2unix
(仅限2017年2月)仅在testing
,而不在main
或community
。来自the relevant documentation -
如果您的配置中仅启用了主存储库,则apk将不包含其他存储库中的包。要从边缘/测试存储库安装软件包而不更改存储库配置文件,请使用以下命令。这将告诉apk使用该特定存储库。
apk add cherokee --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
在这种情况下,您可以将dos2unix
替换为cherokee
。