Is there a way to use the --add-host docker run option in the docker container specified in the image in a pipeline file? I want to be able to add entries the image's host file before running some e2e tests with testcafe. Thanks in advance.
@Jeremy Raymond this isn't currently possible. You can however add append entries to /etc/hosts as part of your build script:
echo "8.8.8.8 example.com" >> /etc/hosts
I had to use the following to get around permission being denied:
sudo -- sh -c "echo 8.8.8.8 example >> /etc/hosts"
But that seems to have done the trick. Thanks!
Hi @Jeremy Raymond .
I had a similar need.
But this solution gave me the following result
- sh -c "echo 8.8.8.8 myserver >> /etc/hosts"- cat /etc/hosts- eval $(aws ecr get-login --region ${AWS_DEFAULT_REGION} --no-include-email)- docker run -p 8080:8080 -d 000000000000.dkr.ecr.us-east-1.amazonaws.com/myserver-api:ci- curl -vvv http://myserver:8080/myserver-api/path
Curl error message:
connect to 8.8.8.8 port 8080 failed: Operation timed outFailed to connect to myserver port 8080: Operation timed out
Is there some extra configuration in your solution you could share with me?
Thanks
I've just found my issue. Details in this posthttps://community.atlassian.com/t5/Bitbucket-Pipelines-questions/Re-Curl-over-custom-AWS-definitions-service/qaq-p/1391357/comment-id/2668#M2668Thanx
Hello, you could add it with:
definitions:services:docker:variables:DOCKER_OPTS: "--add-host=fqdn:ip"
I have same problem with pipe and this doesnt work. Do you know how to add extra host with pipe ?
This will not work if run at build time: the hosts file is generated at run time by docker so whatever you do to it during build will be lost.
At run time, this requires that you can run the container as root, which is often not an option.
Depending on what you need to map, you can set HOSTALIASES env var to a non-root file which contains an alias like "alias actual". But eg this does not work with kubectl.
It looks like you're new here. Sign in or register to get started.