Я пытаюсь использовать sed, чтобы заменить текст "localhost" в моем nginx.conf на IP-адрес моего хоста докера (к вашему сведению: локально использую докер, на котором запущен докер 192.168.99.100).
Мой Dockerfile для nginx выглядит так:
FROM nginx:alpine
ARG DOCKER_HOST
COPY ./nginx.conf /etc/nginx/nginx.conf
RUN sed -i 's/localhost/${DOCKER_HOST}/g' /etc/nginx/nginx.conf
EXPOSE 80
Мой файл nginx.conf выглядит следующим образом (примечание: большинство исключено для простоты)
http {
sendfile on;
upstream epd {
server localhost:8080;
}
# ...
}
Я ожидаю, что "localhost" будет заменен на "192.168.99.100", но на самом деле он будет заменен на "$ {DOCKER_HOST}". Это вызывает ошибку
хост не найден в восходящем потоке "$ {DOCKER_HOST}: 8080"
Я пробовал несколько других вещей, но я не могу заставить это работать. Я могу подтвердить, что аргумент сборки DOCKER_HOST доходит до Dockerfile через мой сценарий создания docker, поскольку я могу повторить это.
Большое спасибо за любые ответы ...