From 72bc980196a03eef793ded59d0a258a45324cdd1 Mon Sep 17 00:00:00 2001 From: Tim Hunter Date: Thu, 23 Dec 2021 01:36:36 +0000 Subject: [PATCH] update python to 3.10 and flask to 1.1.4 At the moment, containers built with this repository will fail to run with these errors: ``` cloud_user@ip-10-0-1-101:~$ kubectl log deployment/hello -n lasample log is DEPRECATED and will be removed in a future version. Use logs instead. Traceback (most recent call last): File "/python/app.py", line 1, in from flask import Flask File "/usr/local/lib/python3.10/site-packages/flask/__init__.py", line 21, in from .app import Flask, Request, Response File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 36, in from .sessions import SecureCookieSessionInterface File "/usr/local/lib/python3.10/site-packages/flask/sessions.py", line 14, in from collections import MutableMapping ImportError: cannot import name 'MutableMapping' from 'collections' (/usr/local/lib/python3.10/collections/__init__.py) ``` python/Dockerfile builds from python:3-alpine, which currently uses python 3.10.1. This version of python requires an updated import syntax that doesn't seem to be in use in version 1.0.2 of Flask, installed via requirements.txt. https://stackoverflow.com/questions/70013988/importerror-cannot-import-name-mutablemapping-from-collections-usr-local Here I've explicitly specified python 3.10 in both the Dockerfile and in the github workflow file, and updated the Flask version to one that works with python 3.10. --- .github/workflows/pythonapp.yml | 4 ++-- python/Dockerfile | 2 +- python/requirements.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pythonapp.yml b/.github/workflows/pythonapp.yml index c3e5d3176..83c897252 100644 --- a/.github/workflows/pythonapp.yml +++ b/.github/workflows/pythonapp.yml @@ -12,10 +12,10 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Set up Python 3.7 + - name: Set up Python 3.10.1 uses: actions/setup-python@v1 with: - python-version: 3.7 + python-version: 3.10.1 - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/python/Dockerfile b/python/Dockerfile index f03e5e3f2..7e057e1f5 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3-alpine +FROM python:3.10.1-alpine COPY . /python WORKDIR /python RUN pip install -r requirements.txt diff --git a/python/requirements.txt b/python/requirements.txt index f2e1e5065..a96494bf0 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1 +1 @@ -Flask==1.0.2 +Flask==1.1.4