تعديل ملف المضيفين في دوكيرفيل

لدي دوكيرفيل مع تعليمات تشغيل لتعديل / الخ / ملف المضيفين لكنه لا يعمل.

FROM dockerhub.mydomain.com/sometag/java8MAINTAINER itsmeADD some-java-app.jar app.jarADD hosts tmp/ENV PATH=/opt/java/bin:$PATHRUN cat /tmp/hosts >> /etc/hostsCMD ["java",\    "-Djava.security.egd=file:/dev/./urandom",\    "-jar",\    "/app.jar"]

في hosts الملف الذي يتم نسخه إلى / تمب في صورة عامل الميناء هناك أسماء المضيفين إضافية و إيبس. اريد ان cat ذلك /tmp/hosts إلى /etc/hosts ولكن بعد بناء الصورة /etc/hosts غير معدلة.

كيفية تعديل هذا الملف بشكل صحيح?تحرير: أحاول استخدام tee الأمر ولكن في حين أن الصورة هي بناء محتويات /tmp/hosts وردد إلى وحدة التحكم ، وليس ل /etc/hosts.

RUN bash -c 'cat /tmp/hosts | tee -a /etc/hosts'

يبدو مثل | أو >> لا يعمل في دوكيرفيل.

عامل الميناء يخلق /etc/hosts ملف أثناء بدء الحاوية. لهذا السبب تعديلاتي /etc/hosts يتم الكتابة فوق الملف. يمكنني تغيير ملف المضيفين ديناميكيا ، عبر أمر كمد.

FROM dockerhub.mydomain.com/sometag/java8MAINTAINER itsmeADD some-java-app.jar app.jarADD hosts tmp/ENV PATH=/opt/java/bin:$PATHCMD cat /tmp/hosts >> /etc/hosts; java -Djava.security.egd=file:/dev/./urandom -jar /app.jar; cat /etc/hosts

تظهر الأوامر الأخيرة التغييرات التي أجراها الأمر الأول في صف كمد.

اعتقد انه اذا كنت ترغب في استيراد ملف يجب عليك استخدام copy وظيفة وليس add - إضافة إذا كنت تحصل من رابط أو استيراد أرشيف.

عامل الميناء يعطي هذا كمثال:

COPY requirements.txt /tmp/RUN pip install --requirement /tmp/requirements.txtCOPY . /tmp/

لذلك في المثال الخاص بك ، يجب أن يعمل هذا

COPY hosts /tmp/ENV PATH=/opt/java/bin:$PATHRUN cat /tmp/hosts >> /etc/hosts