From 651ac2aa6b6de1b06311ed56a45f29ba3f9a3331 Mon Sep 17 00:00:00 2001 From: eduardo apolinario Date: Thu, 6 Apr 2023 17:40:49 -0700 Subject: [PATCH 1/3] Unify sqlalchemy Dockerfiles Signed-off-by: eduardo apolinario --- .github/workflows/pythonpublish.yml | 3 ++- .../{Dockerfile.py3.10 => Dockerfile} | 3 ++- plugins/flytekit-sqlalchemy/Dockerfile.py3.7 | 25 ------------------- plugins/flytekit-sqlalchemy/Dockerfile.py3.8 | 25 ------------------- plugins/flytekit-sqlalchemy/Dockerfile.py3.9 | 25 ------------------- 5 files changed, 4 insertions(+), 77 deletions(-) rename plugins/flytekit-sqlalchemy/{Dockerfile.py3.10 => Dockerfile} (91%) delete mode 100644 plugins/flytekit-sqlalchemy/Dockerfile.py3.7 delete mode 100644 plugins/flytekit-sqlalchemy/Dockerfile.py3.8 delete mode 100644 plugins/flytekit-sqlalchemy/Dockerfile.py3.9 diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml index 8734fe3490..6a94affc68 100644 --- a/.github/workflows/pythonpublish.yml +++ b/.github/workflows/pythonpublish.yml @@ -137,6 +137,7 @@ jobs: tags: ${{ steps.sqlalchemy-names.outputs.tags }} build-args: | VERSION=${{ needs.deploy.outputs.version }} - file: ./plugins/flytekit-sqlalchemy/Dockerfile.py${{ matrix.python-version }} + PYTHON_VERSION=${{ matrix.python-version }} + file: ./plugins/flytekit-sqlalchemy/Dockerfile cache-from: type=gha cache-to: type=gha,mode=max diff --git a/plugins/flytekit-sqlalchemy/Dockerfile.py3.10 b/plugins/flytekit-sqlalchemy/Dockerfile similarity index 91% rename from plugins/flytekit-sqlalchemy/Dockerfile.py3.10 rename to plugins/flytekit-sqlalchemy/Dockerfile index 791b13fa53..9c5f15b4c9 100644 --- a/plugins/flytekit-sqlalchemy/Dockerfile.py3.10 +++ b/plugins/flytekit-sqlalchemy/Dockerfile @@ -1,4 +1,5 @@ -FROM python:3.10-slim-buster +ARG PYTHON_VERSION +FROM python:${PYTHON_VERSION}-slim-buster WORKDIR /app ENV VENV /opt/venv diff --git a/plugins/flytekit-sqlalchemy/Dockerfile.py3.7 b/plugins/flytekit-sqlalchemy/Dockerfile.py3.7 deleted file mode 100644 index 879656adb5..0000000000 --- a/plugins/flytekit-sqlalchemy/Dockerfile.py3.7 +++ /dev/null @@ -1,25 +0,0 @@ -FROM python:3.7-slim-buster - -WORKDIR /app -ENV VENV /opt/venv -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV PYTHONPATH /app - -RUN pip install awscli -RUN pip install gsutil - -ARG VERSION - -# Virtual environment -RUN python3.7 -m venv ${VENV} -RUN ${VENV}/bin/pip install wheel - -RUN ${VENV}/bin/pip install sqlalchemy psycopg2-binary pymysql flytekitplugins-sqlalchemy==$VERSION flytekit==$VERSION - -# Copy over the helper script that the SDK relies on -RUN cp ${VENV}/bin/flytekit_venv /usr/local/bin -RUN chmod a+x /usr/local/bin/flytekit_venv - -# Enable the virtualenv for this image. Note this relies on the VENV variable we've set in this image. -ENTRYPOINT ["/usr/local/bin/flytekit_venv"] diff --git a/plugins/flytekit-sqlalchemy/Dockerfile.py3.8 b/plugins/flytekit-sqlalchemy/Dockerfile.py3.8 deleted file mode 100644 index 93b7048e1b..0000000000 --- a/plugins/flytekit-sqlalchemy/Dockerfile.py3.8 +++ /dev/null @@ -1,25 +0,0 @@ -FROM python:3.8-slim-buster - -WORKDIR /app -ENV VENV /opt/venv -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV PYTHONPATH /app - -RUN pip install awscli -RUN pip install gsutil - -ARG VERSION - -# Virtual environment -RUN python3.8 -m venv ${VENV} -RUN ${VENV}/bin/pip install wheel - -RUN ${VENV}/bin/pip install sqlalchemy psycopg2-binary pymysql flytekitplugins-sqlalchemy==$VERSION flytekit==$VERSION - -# Copy over the helper script that the SDK relies on -RUN cp ${VENV}/bin/flytekit_venv /usr/local/bin -RUN chmod a+x /usr/local/bin/flytekit_venv - -# Enable the virtualenv for this image. Note this relies on the VENV variable we've set in this image. -ENTRYPOINT ["/usr/local/bin/flytekit_venv"] diff --git a/plugins/flytekit-sqlalchemy/Dockerfile.py3.9 b/plugins/flytekit-sqlalchemy/Dockerfile.py3.9 deleted file mode 100644 index 039956dcd1..0000000000 --- a/plugins/flytekit-sqlalchemy/Dockerfile.py3.9 +++ /dev/null @@ -1,25 +0,0 @@ -FROM python:3.9-slim-buster - -WORKDIR /app -ENV VENV /opt/venv -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV PYTHONPATH /app - -RUN pip install awscli -RUN pip install gsutil - -ARG VERSION - -# Virtual environment -RUN python3.9 -m venv ${VENV} -RUN ${VENV}/bin/pip install wheel - -RUN ${VENV}/bin/pip install sqlalchemy psycopg2-binary pymysql flytekitplugins-sqlalchemy==$VERSION flytekit==$VERSION - -# Copy over the helper script that the SDK relies on -RUN cp ${VENV}/bin/flytekit_venv /usr/local/bin -RUN chmod a+x /usr/local/bin/flytekit_venv - -# Enable the virtualenv for this image. Note this relies on the VENV variable we've set in this image. -ENTRYPOINT ["/usr/local/bin/flytekit_venv"] From d1a592aaf62ebadf2af2eebdc0f3c45856761e9f Mon Sep 17 00:00:00 2001 From: eduardo apolinario Date: Thu, 6 Apr 2023 18:12:27 -0700 Subject: [PATCH 2/3] Simplifyte sqlalchemy Dockerfile Signed-off-by: eduardo apolinario --- plugins/flytekit-sqlalchemy/Dockerfile | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/plugins/flytekit-sqlalchemy/Dockerfile b/plugins/flytekit-sqlalchemy/Dockerfile index 9c5f15b4c9..1a9a00c897 100644 --- a/plugins/flytekit-sqlalchemy/Dockerfile +++ b/plugins/flytekit-sqlalchemy/Dockerfile @@ -2,25 +2,18 @@ ARG PYTHON_VERSION FROM python:${PYTHON_VERSION}-slim-buster WORKDIR /app -ENV VENV /opt/venv ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 ENV PYTHONPATH /app -RUN pip install awscli -RUN pip install gsutil - ARG VERSION -# Virtual environment -RUN python3.10 -m venv ${VENV} -RUN ${VENV}/bin/pip install wheel - -RUN ${VENV}/bin/pip install sqlalchemy psycopg2-binary pymysql flytekitplugins-sqlalchemy==$VERSION flytekit==$VERSION - -# Copy over the helper script that the SDK relies on -RUN cp ${VENV}/bin/flytekit_venv /usr/local/bin -RUN chmod a+x /usr/local/bin/flytekit_venv +RUN pip install sqlalchemy \ + psycopg2-binary \ + pymysql \ + flytekitplugins-sqlalchemy==$VERSION \ + flytekit==$VERSION -# Enable the virtualenv for this image. Note this relies on the VENV variable we've set in this image. -ENTRYPOINT ["/usr/local/bin/flytekit_venv"] +RUN useradd -u 1000 flytekit +RUN chown flytekit: /root +USER flytekit From c5943e1b692e1fb8c1d79e543c5f82e1f73e7c89 Mon Sep 17 00:00:00 2001 From: eduardo apolinario Date: Thu, 6 Apr 2023 18:17:03 -0700 Subject: [PATCH 3/3] Set pythonpath to /root Signed-off-by: eduardo apolinario --- plugins/flytekit-sqlalchemy/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/flytekit-sqlalchemy/Dockerfile b/plugins/flytekit-sqlalchemy/Dockerfile index 1a9a00c897..ed1a644d8f 100644 --- a/plugins/flytekit-sqlalchemy/Dockerfile +++ b/plugins/flytekit-sqlalchemy/Dockerfile @@ -1,10 +1,10 @@ ARG PYTHON_VERSION FROM python:${PYTHON_VERSION}-slim-buster -WORKDIR /app +WORKDIR /root ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 -ENV PYTHONPATH /app +ENV PYTHONPATH /root ARG VERSION