Dockerfile, как добавить псевдоним localhost?
Привет, мне нужно добавить псевдоним localhost
в Dockerfile
Я делаю следующее:
RUN echo '127.0.0.1 locdev' >>/etc/hosts
Но когда я перейду в консоль image bash
$ docker exec -it my-image bash
и попытаться выполнить ping с этого хоста, он вызывает ошибку
$ ping locdev
ping: unknown host
Что содержит /etc/hosts
?
$ cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4 62a5e2d10730
нет других записей
Кто-нибудь знает, как я могу это сделать? Мне нужно сделать это в Dockerfile
поскольку внешняя служба запускает этот докер, и я не запускаю его из командной строки.
В моем случае это приложение PHP
, которое хранится в репозитории Bitbucket
. Появилась новая функция PIPELINES
. Он запускает приложение на образ Docker
.
В моем случае это приложение подключается к серверу mysql
где я не могу изменить конфигурацию (это приведет к поломке производства). На этом изображении докеры я установил сервер mysql
. Поэтому localhost
работает, но мне нужно добавить этот псевдоним для localhost
чтобы не сломать производственный сервер;
Фрагмент Dockerfile
:
RUN \
aliases="127.0.0.1 localhost locdev" &&\
sed "1s/.*/$aliases/" /etc/hosts
RUN cat /etc/hosts
Мой пример docker build
докеров:
Step 10 : RUN aliases="127.0.0.1 localhost locdev" && sed "1s/.*/$aliases/" /etc/hosts
---> Running in 11ac105d632d
127.0.0.1 localhost locdev
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 383850eeb47b
---> 0248977e48bd
Removing intermediate container 11ac105d632d
Step 11 : RUN cat /etc/hosts
---> Running in 20fc2f40b5a9
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 383850eeb47b
---> c9e47ee296c5
Removing intermediate container 20fc2f40b5a9
Successfully built c9e47ee296c5