Как использовать curl (или программное обеспечение simillar) с «запуском Docker», если ENTRYPOINT уже используется? - PullRequest
0 голосов
/ 08 декабря 2018

Я хочу создать образ докера с сервером Tor / aiohttp для использования в качестве прокси для HTTP-запросов (в основном curl).Я уже подготовил рабочий образ Docker (я могу использовать внешний curl -x с ним), основная проблема с синтаксисом.

Что мне нужно: Мне нужно использовать это изображение как docker run test_image curl api.ipify.org.Основная проблема - я не понимаю, как правильно настроить ENTRYPOINT / CMD.Я использую supervisor для активации служб (tor / aiohttp), поэтому последняя строка моего образа Docker:

ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

Вопрос: Как я могусконфигурировать образ Docker (используя ENTRYPOINT / CMD), чтобы изображение активировало мой запрос curl после активации служб?

С текущей точкой входа exec (или оболочкой) он игнорирует curl.Если я использую cmd вместо точки входа, curl работает, но изображение игнорирует cmd, поэтому службы не активируются.

Поэтому нужен какой-либо совет относительно логики / синтаксиса Docker, чтобы я мог заставить его работать.

1 Ответ

0 голосов
/ 08 декабря 2018

Вы можете запустить ENTRYPOINT в качестве сценария оболочки вместо команды:

https://success.docker.com/article/use-a-script-to-initialize-stateful-container-data

docker-entrpoint.sh

#!/bin/bash
set -e

/usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
curl api.ipify.org

Dockerfile

FROM debian:stretch
...
COPY docker-entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]
...