From c56aff69d661cecd9d67404f7975a2bdbdec44b6 Mon Sep 17 00:00:00 2001 From: wuttinanhi Date: Mon, 19 Sep 2022 04:06:02 +0000 Subject: [PATCH] add docker support --- .dockerignore | 26 ++++++++++++++++++++++++++ .gitpod.yml | 3 ++- Dockerfile | 25 +++++++++++++++++++++++++ docker-compose.debug.yml | 14 ++++++++++++++ docker-compose.dev.yml | 28 ++++++++++++++++++++++++++++ docker-compose.yml | 10 ++++++++++ 6 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.debug.yml create mode 100644 docker-compose.dev.yml create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..21bf6d4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,26 @@ +**/__pycache__ +**/.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 diff --git a/.gitpod.yml b/.gitpod.yml index 253addf..c982900 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -11,7 +11,8 @@ ports: vscode: extensions: + - ms-azuretools.vscode-docker - ms-vscode.makefile-tools - VisualStudioExptTeam.vscodeintellicode - ms-python.python - - rangav.vscode-thunder-client \ No newline at end of file + - rangav.vscode-thunder-client diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..917c35f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# For more information, please refer to https://aka.ms/vscode-docker-python +FROM python:3.8-slim + +EXPOSE 5000 + +# Keeps Python from generating .pyc files in the container +ENV PYTHONDONTWRITEBYTECODE=1 + +# Turns off buffering for easier container logging +ENV PYTHONUNBUFFERED=1 + +# Install pip requirements +COPY requirements.txt . +RUN python -m pip install -r requirements.txt + +WORKDIR /app +COPY . /app + +# Creates a non-root user with an explicit UID and adds permission to access the /app folder +# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers +RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app +USER appuser + +# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug +CMD ["gunicorn", "--bind", "0.0.0.0:5000", "main:app"] diff --git a/docker-compose.debug.yml b/docker-compose.debug.yml new file mode 100644 index 0000000..e36fd7d --- /dev/null +++ b/docker-compose.debug.yml @@ -0,0 +1,14 @@ +version: '3.4' + +services: + carparkingreservationapi: + image: carparkingreservationapi + build: + context: . + dockerfile: ./Dockerfile + command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 -m flask run --no-debugger --no-reload --host 0.0.0.0 --port 5000"] + ports: + - 5000:5000 + - 5678:5678 + environment: + - FLASK_APP=venv/lib64/python3.9/site-packages/flask/app.py diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..b90ca49 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,28 @@ +version: '3.4' + +services: + mysql: + image: mysql + command: --default-authentication-plugin=mysql_native_password + environment: + MYSQL_DATABASE: appdb + MYSQL_USER: appuser + MYSQL_PASSWORD: app-password + MYSQL_ROOT_PASSWORD: app-root-password + volumes: + - db_storage:/var/lib/mysql + ports: + - 3306:3306 + + phpmyadmin: + image: phpmyadmin + environment: + PMA_HOST: mysql + PMA_USER: appuser + PMA_PASSWORD: app-password + PMA_DATABASE: appdb + ports: + - 8080:80 + +volumes: + db_storage: diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..58874b3 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.4' + +services: + carparkingreservationapi: + image: carparkingreservationapi + build: + context: . + dockerfile: ./Dockerfile + ports: + - 5000:5000