Modify hosts file in dockerfile
Solution 1:
Docker creates /etc/hosts
file while container is started. That's why my modifications of /etc/hosts
file are overwritten. I can change hosts file dynamically, via CMD command.
FROM dockerhub.mydomain.com/sometag/java8
MAINTAINER itsme
ADD some-java-app.jar app.jar
ADD hosts tmp/
ENV PATH=/opt/java/bin:$PATH
CMD cat /tmp/hosts >> /etc/hosts; java -Djava.security.egd=file:/dev/./urandom -jar /app.jar; cat /etc/hosts
Last commands shows changes made by first command in CMD row.
Solution 2:
I think if you want to import a file you should use the copy
function and not add
- add if you are getting from a URL or importing an archive.
docker gives this as an example:
COPY requirements.txt /tmp/
RUN pip install --requirement /tmp/requirements.txt
COPY . /tmp/
so in your example, this should work
COPY hosts /tmp/
ENV PATH=/opt/java/bin:$PATH
RUN cat /tmp/hosts >> /etc/hosts