From 7ff96e9650c6743f8d337c399203f7f07b4f9398 Mon Sep 17 00:00:00 2001 From: Craig Rueda Date: Sat, 8 Aug 2020 18:56:20 -0700 Subject: [PATCH] fix: Updating Dockerfile to work with updated python requirements. (#10550) * Updating Dockerfile to work with updated python requirements. * Adding a Docker build step to CI workflow * Trying docker build-push * Linting Dockerfile-dev * Switching to dev dockerfile --- .github/workflows/superset-docker.yml | 22 +++++++++++++++++++ Dockerfile | 17 ++++++++------ Dockerfile-dev | 9 ++++---- .../docker.in | 7 +++--- requirements/docker.txt | 17 ++++++++++++++ 5 files changed, 57 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/superset-docker.yml rename docker/requirements-extra.txt => requirements/docker.in (94%) create mode 100644 requirements/docker.txt diff --git a/.github/workflows/superset-docker.yml b/.github/workflows/superset-docker.yml new file mode 100644 index 0000000000000..a9fae05380f64 --- /dev/null +++ b/.github/workflows/superset-docker.yml @@ -0,0 +1,22 @@ +name: DOCKER + +on: [push, pull_request] + +jobs: + build: + name: build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Run local registry + run: docker run -d -p 5000:5000 registry:2 + + - name: Build and push Docker images + uses: docker/build-push-action@v1 + with: + dockerfile: Dockerfile-dev + registry: localhost:5000 + repository: temp/workflow + tags: foo diff --git a/Dockerfile b/Dockerfile index b4b6a46c78a79..16b8d3af2936d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,13 +27,18 @@ RUN mkdir /app \ build-essential \ default-libmysqlclient-dev \ libpq-dev \ + libsasl2-dev \ && rm -rf /var/lib/apt/lists/* # First, we just wanna install requirements, which will allow us to utilize the cache # in order to only build if and only if requirements change -COPY ./requirements/*.txt /app/ +COPY ./requirements/*.txt /app/requirements/ +COPY setup.py MANIFEST.in README.md /app/ +COPY superset-frontend/package.json /app/superset-frontend/ RUN cd /app \ - && pip install --no-cache -r requirements/local.txt + && mkdir -p superset/static \ + && touch superset/static/version_info.json \ + && pip install --no-cache -r requirements/local.txt ###################################################################### @@ -114,13 +119,11 @@ ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] ###################################################################### FROM lean AS dev -COPY ./requirements/*.txt ./docker/requirements/ /app/ +COPY ./requirements/*.txt ./docker/requirements-*.txt/ /app/requirements/ USER root # Cache everything for dev purposes... RUN cd /app \ - && pip install --ignore-installed -e . \ - && pip install --ignore-installed -r requirements/local.txt \ - && pip install --ignore-installed -r requirements-extra.txt \ - && pip install --ignore-installed -r requirements-local.txt || true + && pip install --no-cache -r requirements/docker.txt \ + && pip install --no-cache -r requirements/requirements-local.txt || true USER superset diff --git a/Dockerfile-dev b/Dockerfile-dev index f96b79fce7abc..0bab1c8475f16 100644 --- a/Dockerfile-dev +++ b/Dockerfile-dev @@ -20,12 +20,11 @@ ###################################################################### FROM preset/superset:dev -COPY ./requirements/*.txt ./docker/requirements* /app/ +COPY ./requirements/*.txt ./docker/requirements-*.txt/ /app/requirements/ USER root +# Cache everything for dev purposes... RUN cd /app \ - && pip install -e . \ - && pip install --no-cache -r requirements/local.txt \ - && pip install --no-cache -r requirements-extra.txt \ - && pip install --no-cache -r requirements-local.txt || true + && pip install --no-cache -r requirements/docker.txt \ + && pip install --no-cache -r requirements/requirements-local.txt || true USER superset diff --git a/docker/requirements-extra.txt b/requirements/docker.in similarity index 94% rename from docker/requirements-extra.txt rename to requirements/docker.in index e7a1ffcbf33b6..252cce8c8d5fd 100644 --- a/docker/requirements-extra.txt +++ b/requirements/docker.in @@ -14,6 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -gevent==1.4.0 -psycopg2-binary==2.8.5 -redis==3.2.1 +-r base.in +gevent +psycopg2-binary +redis diff --git a/requirements/docker.txt b/requirements/docker.txt new file mode 100644 index 0000000000000..e2138eb7ab745 --- /dev/null +++ b/requirements/docker.txt @@ -0,0 +1,17 @@ +# SHA1:54074dcfe0a3bf83a9f4f8e2fb9d24746a86b50c +# +# This file is autogenerated by pip-compile-multi +# To update, run: +# +# pip-compile-multi +# +-r base.txt +-e file:. # via -r base.in +gevent==20.6.2 # via -r docker.in +greenlet==0.4.16 # via gevent +redis==3.5.3 # via -r docker.in +zope.event==4.4 # via gevent +zope.interface==5.1.0 # via gevent + +# The following packages are considered to be unsafe in a requirements file: +# setuptools