【发布时间】:2017-02-23 18:55:09
【问题描述】:
我有以下 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]
我可以在这里看到这个包:https://pkgs.alpinelinux.org/packages?name=dos2unix&branch=&repo=&arch=&maintainer=
我做错了什么?
【问题讨论】:
-
你会注意到它在
testing,而不是main或community。 -
有没有办法强制它接受测试?还是手动添加的方法?
-
出于好奇,您为什么需要它?在许多情况下,
tr -d '\r' <in >out && mv out in就足够了。 -
我的行尾显示为
^M- 我应该同时考虑\r和^M以及可能的其他人吗? -
完全清楚:
dos2unix修复的 DOS 和 UNIX 文本文件之间的唯一区别在于前者中的CRLF行结尾与LF之间的区别行结尾在后者。\r和^M是表示 CR 字符的两种不同方式;有些软件使用前者,有些则使用后者(有些则完全不同,例如%0D或\x0d)。
标签: docker dockerfile alpine