diff --git a/Dockerfile b/Dockerfile index 5cbc821..0e31934 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,6 @@ RUN bash n 14 RUN npm -g install yarn WORKDIR /app -RUN pip install pipenv -RUN pipenv install --three --system --dev +RUN pip install poetry +RUN poetry install RUN rm -fr /app/* diff --git a/Dockerfile.autobuild b/Dockerfile.autobuild index 2e15fbd..47887db 100644 --- a/Dockerfile.autobuild +++ b/Dockerfile.autobuild @@ -55,11 +55,12 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* \ && apt-get autoclean -# Install Pipfile requirements -COPY Pipfile* ./ +# Install Poetry requirements +COPY pyproject.toml ./ +COPY poetry.lock ./ RUN pip install "rcssmin==1.0.6" --install-option="--without-c-extensions" \ - && pip install pipenv \ - && pipenv install --three --system --clear + && pip install poetry \ + && poetry install # Copy from previous stages COPY --from=yarn-build pinry-spa/dist /pinry/pinry-spa/dist diff --git a/Makefile b/Makefile index c26e751..6f69b88 100644 --- a/Makefile +++ b/Makefile @@ -3,31 +3,35 @@ dev-docker-serve: dev-docker-build-frontend: docker-compose up build_frontend backup-images: - pipenv run python manage.py dumpdata django_images > db-backup.django_images.json + poetry run python manage.py dumpdata django_images > db-backup.django_images.json backup-all: - pipenv run python manage.py dumpdata > db-backup.all.json + poetry run python manage.py dumpdata > db-backup.all.json migrate: - pipenv run python manage.py migrate + poetry run python manage.py migrate +migrate-no-input: + poetry run python manage.py migrate --noinput makemigrations: - pipenv run python manage.py makemigrations + poetry run python manage.py makemigrations recover-all: - pipenv run python manage.py loaddata db-backup.all.json + poetry run python manage.py loaddata db-backup.all.json +collect-static-no-input: + poetry run python manage.py collectstatic --noinput bootstrap: make install - pipenv run python manage.py collectstatic + make collect-static-no-input serve: - pipenv run python manage.py runserver 0.0.0.0:8000 + poetry run python manage.py runserver 0.0.0.0:8000 install: - pipenv install + poetry install test: - pipenv run python manage.py test + poetry run python manage.py test shell: - pipenv run python manage.py shell + poetry run python manage.py shell flake8: - pipenv run flake8 + poetry run flake8 docs-serve: - pipenv run mkdocs serve + poetry run mkdocs serve docs-build: - pipenv run mkdocs build + poetry run mkdocs build docs-publish: - pipenv run mkdocs gh-deploy + poetry run mkdocs gh-deploy diff --git a/docker/scripts/_start_gunicorn.sh b/docker/scripts/_start_gunicorn.sh index 092aba1..32a80df 100755 --- a/docker/scripts/_start_gunicorn.sh +++ b/docker/scripts/_start_gunicorn.sh @@ -1,5 +1,4 @@ #!/bin/bash -gunicorn pinry.wsgi -b 0.0.0.0:8000 -w 4 \ +poetry run gunicorn pinry.wsgi -b 0.0.0.0:8000 -w 4 \ --capture-output --timeout 30 \ - --user www-data --group www-data \ - --env DJANGO_SETTINGS_MODULE=pinry.settings.docker + --user www-data --group www-data diff --git a/docker/scripts/start.sh b/docker/scripts/start.sh index c066bb1..959a372 100755 --- a/docker/scripts/start.sh +++ b/docker/scripts/start.sh @@ -14,13 +14,13 @@ bash ${PROJECT_ROOT}/docker/scripts/bootstrap.sh # If static files don't exist collect them cd ${PROJECT_ROOT} -python manage.py collectstatic --noinput +make collect-static-no-input # If database doesn't exist yet create it if [ ! -f /data/production.db ] then cd ${PROJECT_ROOT} - python manage.py migrate --noinput + make migrate-no-input fi # Fix all settings after all commands are run