mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-10-31 02:32:45 +00:00 
			
		
		
		
	Update Dockerfile logic
This commit is contained in:
		| @@ -1,29 +1,12 @@ | |||||||
| **/__pycache__ | # Exclude everything | ||||||
| **/.venv | * | ||||||
| **/.classpath |  | ||||||
| **/.dockerignore |  | ||||||
| **/.env |  | ||||||
| **/.git |  | ||||||
| **/.gitignore |  | ||||||
| **/.project |  | ||||||
| **/.settings |  | ||||||
| **/.toolstarget |  | ||||||
| **/.vs |  | ||||||
| **/.vscode |  | ||||||
| **/*.*proj.user |  | ||||||
| **/*.dbmdl |  | ||||||
| **/*.jfm |  | ||||||
| **/bin |  | ||||||
| **/charts |  | ||||||
| **/docker-compose* |  | ||||||
| **/compose* |  | ||||||
| **/Dockerfile* |  | ||||||
| **/node_modules |  | ||||||
| **/npm-debug.log |  | ||||||
| **/obj |  | ||||||
| **/secrets.dev.yaml |  | ||||||
| **/values.dev.yaml |  | ||||||
| README.md |  | ||||||
|  |  | ||||||
|  | # Include what we need | ||||||
| data | !app | ||||||
|  | !migrations | ||||||
|  | !tests | ||||||
|  | !.flaskenv | ||||||
|  | !boot.sh | ||||||
|  | !config.py | ||||||
|  | !nopaque.py | ||||||
|  | !requirements.txt | ||||||
|   | |||||||
							
								
								
									
										186
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										186
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,42 +1,168 @@ | |||||||
|  | # nopaque specifics | ||||||
|  | app/static/gen/ | ||||||
|  | data/ | ||||||
|  | docker-compose.override.yml | ||||||
|  | logs/ | ||||||
|  | !logs/dummy | ||||||
|  | *.env | ||||||
|  |  | ||||||
|  | # Byte-compiled / optimized / DLL files | ||||||
|  | __pycache__/ | ||||||
| *.py[cod] | *.py[cod] | ||||||
|  | *$py.class | ||||||
|  |  | ||||||
| # C extensions | # C extensions | ||||||
| *.so | *.so | ||||||
|  |  | ||||||
| # Flask-Assets files | # Distribution / packaging | ||||||
| .webassets-cache | .Python | ||||||
| app/static/gen | build/ | ||||||
|  | develop-eggs/ | ||||||
|  | dist/ | ||||||
|  | downloads/ | ||||||
|  | eggs/ | ||||||
|  | .eggs/ | ||||||
|  | lib/ | ||||||
|  | lib64/ | ||||||
|  | parts/ | ||||||
|  | sdist/ | ||||||
|  | var/ | ||||||
|  | wheels/ | ||||||
|  | share/python-wheels/ | ||||||
|  | *.egg-info/ | ||||||
|  | .installed.cfg | ||||||
|  | *.egg | ||||||
|  | MANIFEST | ||||||
|  |  | ||||||
| # Docker related files | # PyInstaller | ||||||
| docker-compose.override.yml | #  Usually these files are written by a python script from a template | ||||||
| data/** | #  before PyInstaller builds the exe, so as to inject date/other infos into it. | ||||||
|  | *.manifest | ||||||
| # Environment files | *.spec | ||||||
| *.env |  | ||||||
|  |  | ||||||
| # Installer logs | # Installer logs | ||||||
| pip-log.txt | pip-log.txt | ||||||
|  | pip-delete-this-directory.txt | ||||||
|  |  | ||||||
| # Logs in log folder | # Unit test / coverage reports | ||||||
| logs/* | htmlcov/ | ||||||
| !logs/dummy | .tox/ | ||||||
|  | .nox/ | ||||||
|  | .coverage | ||||||
|  | .coverage.* | ||||||
|  | .cache | ||||||
|  | nosetests.xml | ||||||
|  | coverage.xml | ||||||
|  | *.cover | ||||||
|  | *.py,cover | ||||||
|  | .hypothesis/ | ||||||
|  | .pytest_cache/ | ||||||
|  | cover/ | ||||||
|  |  | ||||||
| # Packages | # Translations | ||||||
| *.egg | *.mo | ||||||
| *.egg-info | *.pot | ||||||
| dist |  | ||||||
| build |  | ||||||
| eggs |  | ||||||
| parts |  | ||||||
| bin |  | ||||||
| var |  | ||||||
| sdist |  | ||||||
| develop-eggs |  | ||||||
| .installed.cfg |  | ||||||
| lib |  | ||||||
| lib64 |  | ||||||
| __pycache__ |  | ||||||
|  |  | ||||||
| # Virtual environment | # Django stuff: | ||||||
| venv | *.log | ||||||
| .idea | local_settings.py | ||||||
|  | db.sqlite3 | ||||||
|  | db.sqlite3-journal | ||||||
|  |  | ||||||
|  | # Flask stuff: | ||||||
|  | instance/ | ||||||
|  | .webassets-cache | ||||||
|  |  | ||||||
|  | # Scrapy stuff: | ||||||
|  | .scrapy | ||||||
|  |  | ||||||
|  | # Sphinx documentation | ||||||
|  | docs/_build/ | ||||||
|  |  | ||||||
|  | # PyBuilder | ||||||
|  | .pybuilder/ | ||||||
|  | target/ | ||||||
|  |  | ||||||
|  | # Jupyter Notebook | ||||||
|  | .ipynb_checkpoints | ||||||
|  |  | ||||||
|  | # IPython | ||||||
|  | profile_default/ | ||||||
|  | ipython_config.py | ||||||
|  |  | ||||||
|  | # pyenv | ||||||
|  | #   For a library or package, you might want to ignore these files since the code is | ||||||
|  | #   intended to run in multiple environments; otherwise, check them in: | ||||||
|  | # .python-version | ||||||
|  |  | ||||||
|  | # pipenv | ||||||
|  | #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. | ||||||
|  | #   However, in case of collaboration, if having platform-specific dependencies or dependencies | ||||||
|  | #   having no cross-platform support, pipenv may install dependencies that don't work, or not | ||||||
|  | #   install all needed dependencies. | ||||||
|  | #Pipfile.lock | ||||||
|  |  | ||||||
|  | # poetry | ||||||
|  | #   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. | ||||||
|  | #   This is especially recommended for binary packages to ensure reproducibility, and is more | ||||||
|  | #   commonly ignored for libraries. | ||||||
|  | #   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control | ||||||
|  | #poetry.lock | ||||||
|  |  | ||||||
|  | # pdm | ||||||
|  | #   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. | ||||||
|  | #pdm.lock | ||||||
|  | #   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it | ||||||
|  | #   in version control. | ||||||
|  | #   https://pdm.fming.dev/#use-with-ide | ||||||
|  | .pdm.toml | ||||||
|  |  | ||||||
|  | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm | ||||||
|  | __pypackages__/ | ||||||
|  |  | ||||||
|  | # Celery stuff | ||||||
|  | celerybeat-schedule | ||||||
|  | celerybeat.pid | ||||||
|  |  | ||||||
|  | # SageMath parsed files | ||||||
|  | *.sage.py | ||||||
|  |  | ||||||
|  | # Environments | ||||||
|  | .env | ||||||
|  | .venv | ||||||
|  | env/ | ||||||
|  | venv/ | ||||||
|  | ENV/ | ||||||
|  | env.bak/ | ||||||
|  | venv.bak/ | ||||||
|  |  | ||||||
|  | # Spyder project settings | ||||||
|  | .spyderproject | ||||||
|  | .spyproject | ||||||
|  |  | ||||||
|  | # Rope project settings | ||||||
|  | .ropeproject | ||||||
|  |  | ||||||
|  | # mkdocs documentation | ||||||
|  | /site | ||||||
|  |  | ||||||
|  | # mypy | ||||||
|  | .mypy_cache/ | ||||||
|  | .dmypy.json | ||||||
|  | dmypy.json | ||||||
|  |  | ||||||
|  | # Pyre type checker | ||||||
|  | .pyre/ | ||||||
|  |  | ||||||
|  | # pytype static type analyzer | ||||||
|  | .pytype/ | ||||||
|  |  | ||||||
|  | # Cython debug symbols | ||||||
|  | cython_debug/ | ||||||
|  |  | ||||||
|  | # PyCharm | ||||||
|  | #  JetBrains specific template is maintained in a separate JetBrains.gitignore that can | ||||||
|  | #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore | ||||||
|  | #  and can be added to the global gitignore or merged into this file.  For a more nuclear | ||||||
|  | #  option (not recommended) you can uncomment the following to ignore the entire idea folder. | ||||||
|  | #.idea/ | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| FROM python:3.8.10-slim-buster | FROM python:3.9.15-slim-bullseye | ||||||
|  |  | ||||||
|  |  | ||||||
| LABEL authors="Patrick Jentsch <p.jentsch@uni-bielefeld.de>" | LABEL authors="Patrick Jentsch <p.jentsch@uni-bielefeld.de>" | ||||||
| @@ -9,36 +9,42 @@ ARG UID | |||||||
| ARG GID | ARG GID | ||||||
|  |  | ||||||
|  |  | ||||||
| ENV FLASK_APP nopaque.py | ENV LANG="C.UTF-8" | ||||||
| ENV LANG=C.UTF-8 | ENV PYTHONDONTWRITEBYTECODE="1" | ||||||
| ENV PYTHONDONTWRITEBYTECODE=1 | ENV PYTHONUNBUFFERED="1" | ||||||
| ENV PYTHONUNBUFFERED=1 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| RUN apt-get update \ | RUN apt-get update \ | ||||||
|  && apt-get install --no-install-recommends --yes \ |  && apt-get install --no-install-recommends --yes \ | ||||||
|       build-essential \ |       build-essential \ | ||||||
|       libpq-dev \ |       libpq-dev \ | ||||||
|  && rm -r /var/lib/apt/lists/* |  && rm --recursive /var/lib/apt/lists/* | ||||||
|  |  | ||||||
|  |  | ||||||
| RUN groupadd --gid ${DOCKER_GID} --system docker \ | RUN groupadd --gid "${DOCKER_GID}" docker \ | ||||||
|  && groupadd --gid ${GID} --system nopaque \ |  && groupadd --gid "${GID}" nopaque \ | ||||||
|  && useradd --create-home --gid ${GID} --groups ${DOCKER_GID} --no-log-init --system --uid ${UID} nopaque |  && useradd --create-home --gid nopaque --groups "${DOCKER_GID}" --no-log-init --uid "${UID}" nopaque | ||||||
| USER nopaque | USER nopaque | ||||||
| WORKDIR /home/nopaque | WORKDIR /home/nopaque | ||||||
|  |  | ||||||
| COPY --chown=nopaque:nopaque requirements.txt ./ |  | ||||||
| RUN python -m venv venv \ | ENV PYTHON3_VENV_PATH="/home/nopaque/venv" | ||||||
|  && venv/bin/pip install --requirement requirements.txt | RUN python3 -m venv "${PYTHON3_VENV_PATH}" | ||||||
|  | ENV PATH="${PYTHON3_VENV_PATH}/bin:${PATH}" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | COPY --chown=nopaque:nopaque requirements.txt . | ||||||
|  | RUN python3 -m pip install --requirement requirements.txt \ | ||||||
|  |  && rm requirements.txt | ||||||
|  |  | ||||||
|  |  | ||||||
| COPY --chown=nopaque:nopaque app app | COPY --chown=nopaque:nopaque app app | ||||||
| COPY --chown=nopaque:nopaque migrations migrations | COPY --chown=nopaque:nopaque migrations migrations | ||||||
| COPY --chown=nopaque:nopaque tests tests | COPY --chown=nopaque:nopaque tests tests | ||||||
| COPY --chown=nopaque:nopaque boot.sh config.py nopaque.py ./ | COPY --chown=nopaque:nopaque .flaskenv boot.sh config.py nopaque.py ./ | ||||||
|  |  | ||||||
|  |  | ||||||
| # run-time configuration |  | ||||||
| EXPOSE 5000 | EXPOSE 5000 | ||||||
|  |  | ||||||
|  |  | ||||||
| ENTRYPOINT ["./boot.sh"] | ENTRYPOINT ["./boot.sh"] | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								boot.sh
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								boot.sh
									
									
									
									
									
								
							| @@ -1,7 +1,5 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
|  |  | ||||||
| source venv/bin/activate |  | ||||||
|  |  | ||||||
| display_help() { | display_help() { | ||||||
|     local script_name=$(basename "${0}") |     local script_name=$(basename "${0}") | ||||||
|     echo "" |     echo "" | ||||||
| @@ -26,7 +24,7 @@ if [[ "${#}" -eq 0 ]]; then | |||||||
|             sleep 5 |             sleep 5 | ||||||
|         done |         done | ||||||
|     fi |     fi | ||||||
|     python nopaque.py |     python3 nopaque.py | ||||||
| elif [[ "${1}" == "flask" ]]; then | elif [[ "${1}" == "flask" ]]; then | ||||||
|     flask "${@:2}" |     flask "${@:2}" | ||||||
| elif [[ "${1}" == "--help" || "${1}" == "-h" ]]; then | elif [[ "${1}" == "--help" || "${1}" == "-h" ]]; then | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user