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
This commit is contained in:
Craig Rueda 2020-08-08 18:56:20 -07:00 committed by GitHub
parent fb051e9a51
commit 5a908d4513
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 57 additions and 15 deletions

22
.github/workflows/superset-docker.yml vendored Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

17
requirements/docker.txt Normal file
View File

@ -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