Нужно ли использовать виртуальную среду при использовании докера? - PullRequest
2 голосов
/ 29 марта 2019

Я не знал, в чем преимущество Docker над виртуальной средой. Необходимо ли одновременно использовать виртуальную среду и докер.

До сегодняшнего дня я использовал виртуальную среду для создания проекта Django. Но сегодня Мой друг рекомендовал мне использовать докер. Я запутался, что мне использовать?

Я использовал эту команду для создания виртуальной среды python3 -m venv virtual_environment_name Это лучший способ создания виртуальной среды, или я должен использовать другой способ создания виртуальной среды

1 Ответ

3 голосов
/ 29 марта 2019

Я бы предпочел использовать pipenv для замены virtualenv в локальной среде разработки и docker без виртуальной среды на производстве. Вот мой Dockerfile (запустите django с gunicorn):

FROM python:3.6

ENV PYTHONUNBUFFERED 1

# switch system download source
RUN python -c "s='mirrors.163.com';import re;from pathlib import Path;p=Path('/etc/apt/sources.list');p.write_text(re.sub(r'(deb|security)\.debian\.org', s, p.read_text()))"
RUN apt-get update

# aliyun source for pip
RUN python -c "s='mirrors.aliyun.com';from pathlib import Path;p=Path.home()/'.pip';p.mkdir();(p/'pip.conf').write_text(f'[global]\nindex-url=https://{s}/pypi/simple\n[install]\ntrusted-host={s}\n')"

# Optional: install and conf vim, install ipython
RUN apt-get install -y vim
RUN wget https://raw.githubusercontent.com/waketzheng/carstino/master/.vimrc
RUN pip install ipython

# copy source code to docker image
WORKDIR /carrot
ADD . .

# required packages for carrot
RUN apt-get install -y ruby-sass

# install gunicorn and Pipfile
RUN pip install pipenv gunicorn
RUN pipenv install --system
RUN python manage.py collectstatic --noinput

# database name and rpc server ip
ENV POSTGRES_HOST=db
ENV RPC_SERVER_IP=172.21.0.2

EXPOSE 9000

# the PASSWORD env should be replace to a real one
CMD ["gunicorn", "--bind", ":9000", "--env", "PASSWORD=123456", "--error-logfile", "gunicorn.error", "--log-file", "gunicorn.log", "carrot.wsgi:application"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...