mirror of
				https://github.com/task-17-lct/backend.git
				synced 2025-10-28 06:41:00 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| ARG PYTHON_VERSION=3.11-slim
 | |
| 
 | |
| # define an alias for the specfic python version used in this file.
 | |
| FROM python:${PYTHON_VERSION} as python
 | |
| 
 | |
| # Python build stage
 | |
| FROM python as python-build-stage
 | |
| 
 | |
| ARG BUILD_ENVIRONMENT=local
 | |
| 
 | |
| # Install apt packages
 | |
| RUN apt-get update && apt-get install --no-install-recommends -y \
 | |
|   # dependencies for building Python packages
 | |
|   build-essential \
 | |
|   # psycopg2 dependencies
 | |
|   libpq-dev
 | |
| 
 | |
| 
 | |
| # Python 'run' stage
 | |
| FROM python as python-run-stage
 | |
| 
 | |
| ARG BUILD_ENVIRONMENT=local
 | |
| ARG APP_HOME=/app
 | |
| 
 | |
| ENV PYTHONUNBUFFERED 1
 | |
| ENV PYTHONDONTWRITEBYTECODE 1
 | |
| ENV BUILD_ENV ${BUILD_ENVIRONMENT}
 | |
| 
 | |
| WORKDIR ${APP_HOME}
 | |
| 
 | |
| # Install required system dependencies
 | |
| RUN apt-get update && apt-get install --no-install-recommends -y \
 | |
|   # psycopg2 dependencies
 | |
|   libpq-dev \
 | |
|   # Translations dependencies
 | |
|   gettext \
 | |
|   # cleaning up unused files
 | |
|   && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
 | |
|   && rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| RUN pip install poetry
 | |
| 
 | |
| # Configuring poetry
 | |
| RUN poetry config virtualenvs.create false
 | |
| COPY pyproject.toml poetry.lock /
 | |
| 
 | |
| # Installing requirements
 | |
| RUN poetry install
 | |
| 
 | |
| 
 | |
| COPY ./compose/production/django/entrypoint /entrypoint
 | |
| RUN sed -i 's/\r$//g' /entrypoint
 | |
| RUN chmod +x /entrypoint
 | |
| 
 | |
| COPY ./compose/local/django/start /start
 | |
| RUN sed -i 's/\r$//g' /start
 | |
| RUN chmod +x /start
 | |
| 
 | |
| 
 | |
| COPY ./compose/local/django/celery/worker/start /start-celeryworker
 | |
| RUN sed -i 's/\r$//g' /start-celeryworker
 | |
| RUN chmod +x /start-celeryworker
 | |
| 
 | |
| COPY ./compose/local/django/celery/beat/start /start-celerybeat
 | |
| RUN sed -i 's/\r$//g' /start-celerybeat
 | |
| RUN chmod +x /start-celerybeat
 | |
| 
 | |
| COPY ./compose/local/django/celery/flower/start /start-flower
 | |
| RUN sed -i 's/\r$//g' /start-flower
 | |
| RUN chmod +x /start-flower
 | |
| 
 | |
| # copy application code to WORKDIR
 | |
| COPY . ${APP_HOME}
 | |
| 
 | |
| ENTRYPOINT ["/entrypoint"]
 |