Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Is it possible to use the --add-host option in pipeline docker image?

Jeremy Raymond August 18, 2019

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.

3 answers

1 accepted

0 votes
Answer accepted
Graham Gatus
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 2, 2019

@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
oschoenborn March 9, 2023

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.

0 votes
Julien Mathevet December 6, 2022

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 ?

0 votes
Jeremy Raymond September 11, 2019

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!

Garry Dias May 27, 2020

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 out
Failed to connect to myserver port 8080: Operation timed out 

 

Is there some extra configuration in your solution you could share with me?

 

Thanks

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events