داکرایز کردن برنامههای پایتون: راهنمای کاربردی
مقدمه: داکر و اهمیت آن در توسعه نرمافزار
داکر یک پلتفرم قدرتمند برای ساخت، توسعه و اجرای برنامههاست که مشکلات رایج در زمینه توسعه و استقرار نرمافزار را حل میکند. این ابزار با ایجاد محیطهای مجزا و قابل حمل، امکان اجرای یکسان برنامهها را در محیطهای مختلف فراهم میکند.
مزایای کلیدی استفاده از داکر:
- قابلیت حمل: برنامهها به راحتی بین سیستمهای مختلف قابل انتقال هستند.
- محیطهای ایزوله: هر کانتینر داکر یک محیط مستقل از سایر برنامهها ایجاد میکند.
- مدیریت وابستگیها: با استفاده از
Dockerfile
وابستگیهای برنامه به سادگی مدیریت میشوند. - یکپارچگی با CI/CD: برنامههای داکری به راحتی در فرآیندهای CI/CD ادغام میشوند.
- امنیت بهبود یافته: داکر ا مکان اجرای برنامهها در محیطهای ایمن و ایزوله را فراهم میکند.
ساخت Dockerfile برای برنامههای پایتون
برای داکرایز کردن یک برنامه پایتون، اولین قدم ایجاد یک Dockerfile
است. این فایل حاوی دستورالعملهایی برای ساخت یک ایمیج داکر است. در ادامه، نمونههایی از Dockerfile
برای فریمورکهای مختلف پایتون ارائه شده است.
نکته
اگر برنامه شما نیاز به نصب برنامههای جانبی دارد (مانند mysql-client)، دستورات نصب را در فایل run.sh
بنویسید. این فایل قبل از نصب وابستگیهای پایتون اجرا میشود:
COPY ./run.sh /app/run.sh
RUN chmod +x /app/run.sh
RUN /app/run.sh
- Pure Python
- Django
- Flask
- FastAPI
FROM python:3.10-slim
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
RUN apt-get update && apt-get install -y --no-install-recommends build-essential gcc
COPY ./run.sh /app/run.sh
RUN chmod +x /app/run.sh
RUN /app/run.sh
RUN pip install --upgrade pip
RUN pip install -r requirements.txt --no-cache-dir
COPY . /app
CMD ["python", "./app.py"]
FROM python:3.10-slim
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
RUN apt-get update && apt-get install -y --no-install-recommends gcc build-essential
COPY ./run.sh /app/run.sh
RUN chmod +x /app/run.sh
RUN /app/run.sh
RUN pip install --upgrade pip
RUN pip install -r requirements.txt --no-cache-dir
COPY . /app
EXPOSE 5000
CMD ["python", "manage.py", "runserver", "0.0.0.0:5000"]
FROM python:3.10-slim
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
RUN apt-get update && apt-get install -y --no-install-recommends gcc build-essential
COPY ./run.sh /app/run.sh
RUN chmod +x /app/run.sh
RUN /app/run.sh
RUN pip install --upgrade pip
RUN pip install -r requirements.txt --no-cache-dir
COPY . /app
EXPOSE 5000
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
FROM python:3.10-slim
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
RUN apt-get update && apt-get install -y --no-install-recommends gcc build-essential
COPY ./run.sh /app/run.sh
RUN chmod +x /app/run.sh
RUN /app/run.sh
RUN pip install --upgrade pip
RUN pip install -r requirements.txt --no-cache-dir
COPY . /app
EXPOSE 5000
CMD ["gunicorn", "-w", "4", "-k", "uvicorn.workers.UvicornWorker", "main:app", "-b", "0.0.0.0:5000"]
بیلد و اجرا کردن داکر فایل
برای بیلد کردن داکر فایل و ساخت ایمیج از دستور:
docker build -t [ProjectName] .
- t- : دادن برچسپ و نام مخصوص برای پروژه
و سپس برای اجرای آن:
docker run -p outport:inport[5000] --name=container-name -d [ProjectName]