Docker запускает Cron в контейнере с другим сервисом, используя прокси - PullRequest
0 голосов
/ 30 января 2019

У меня есть приложение django в контейнере Docker.Я построил образ, используя

docker build --build-arg http_proxy=$http_proxy \
             --build-arg https_proxy=$https_proxy \
             --build-arg no_proxy=$no_proxy \
             -t <tag> .

И мои прокси-переменные установлены в моем текущем терминальном сеансе с использованием

export http_proxy=http://user:pass@proxy.company.com:8099/
export https_proxy=http://user:pass@proxy.company.com:8099/
export no_proxy=*.local,localhost,169.254.169.254,*.abc.company.com,*.cloud.company.com

Ниже приведен Dockerifle:

FROM artifactory.cloud.company.com/amazonlinux:2.0.20181010

ENV PIP_INDEX_URL https://artifactory.cloud.company.com/artifactory/api/pypi/pypi-internalfacing/simple/


RUN yum install -y python3 python3-devel python3-setuptools python3-pip git gcc
RUN pip3 install --upgrade --trusted-host artifactory.cloud.company.com pip setuptools
RUN amazon-linux-extras install nginx1.12
RUN yum install -y python2-pip
RUN pip2 install supervisor -i https://artifactory.cloud.company.com/artifactory/api/pypi/pypi-internalfacing/simple/ --trusted-host artifactory.cloud.company.com
RUN pip3 install uwsgi
RUN pip3 install django requests python-decouple
RUN mkdir -p /ASVDASHBOARD
# Application folder on the server with absolute path.
ADD ./ASVDASHBOARD /ASVDASHBOARD

WORKDIR /ASVDASHBOARD
RUN mkdir -p /etc/supervisor/
RUN cp ASVDASHBOARD_nginx.conf /etc/nginx/conf.d/default.conf
RUN cp ASVDASHBOARD_supervisor.conf /etc/supervisor/supervisord.conf
#RUN cp ASVDASHBOARD_supervisor.conf /etc/supervisord.d/
RUN chown -R nginx:nginx /ASVDASHBOARD && \
    mkdir -p /ASVDASHBOARD/logs/ && \
    touch /ASVDASHBOARD/logs/dashboard.log
RUN python3 manage.py makemigrations && \
    python3 manage.py migrate --run-syncdb && \
    python3 manage.py migrate

RUN python3 manage.py update_data
RUN mkdir /run/uwsgi && chmod -R 777 /run/uwsgi
EXPOSE 8080

CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]

Я также запускаю контейнер, используя

docker run -it -d --name final_dashboardd -e http_proxy -e https_proxy -e no_proxy -p 8080:8080 py37:v3

Теперь я хочу запустить задание cron в контейнере для запуска этой команды python3 /pathtofile/manage.py update_data.Чтобы просто запустить вручную, мне нужно будет присоединить терминал оболочки к контейнеру с помощью exec, установить прокси и затем запустить команду, она работает нормально.

Как установить / передать прокси для запуска этого задания cronсейчас.Я пытался

 */1 * * * * python3 /pathtofile/manage.py update_data

, который не работал.Как пройти прокси здесь, так как я подключен к терминалу и у меня настроены переменные прокси.это работает Но как настроить прокси для cron.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...