Skip to content

Commit

Permalink
Docker - Superset - Version updated to 2.1.1 and added 3.0.0 (GoogleC…
Browse files Browse the repository at this point in the history
  • Loading branch information
AdrianManiek authored Oct 19, 2023
1 parent 481790d commit ddb0cbd
Show file tree
Hide file tree
Showing 12 changed files with 336 additions and 5 deletions.
4 changes: 2 additions & 2 deletions docker/superset/2/debian11/2.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM marketplace.gcr.io/google/c2d-debian11

ARG SUPERSET_VERSION="2.1.0"
ENV C2D_RELEASE "2.1.0"
ARG SUPERSET_VERSION="2.1.1"
ENV C2D_RELEASE "2.1.1"
ENV SUPERSET_VERSION ${SUPERSET_VERSION}
ENV FLASK_APP="superset.app:create_app()"
ENV SUPERSET_HOME=/var/lib/superset
Expand Down
1 change: 1 addition & 0 deletions docker/superset/2/debian11/2.1/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ pillow==9.4.0
pyopenssl==23.1.1
wtforms==2.3.3
wtforms-json==0.3.3
werkzeug==2.1.1
mysqlclient==2.1.0
marshmallow_enum
psycopg2-binary
Expand Down
51 changes: 51 additions & 0 deletions docker/superset/3/debian11/3.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
FROM marketplace.gcr.io/google/c2d-debian11

ARG SUPERSET_VERSION="3.0.0"
ENV C2D_RELEASE "3.0.0"
ENV SUPERSET_VERSION ${SUPERSET_VERSION}
ENV FLASK_APP="superset.app:create_app()"
ENV SUPERSET_HOME=/var/lib/superset

# Installing python3 and dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev openssl\
libldap2-dev default-libmysqlclient-dev

# Create superset user & install dependencies
WORKDIR /home/superset
COPY requirements*.txt ./
RUN groupadd supergroup && \
useradd -U -G supergroup superset && \
mkdir -p /etc/superset && \
mkdir -p $SUPERSET_HOME && \
chown -R superset:superset /etc/superset && \
chown -R superset:superset $SUPERSET_HOME && \
apt-get update && \
apt-get install -y \
curl \
freetds-bin \
freetds-dev \
libaio1 \
libecpg-dev \
libffi-dev \
libldap2-dev \
libpq-dev \
libsasl2-2 \
libsasl2-modules-gssapi-mit && \
pip install --disable-pip-version-check --upgrade "pip==23.2.1" && \
pip install -r requirements.txt && \
pip install apache-superset==$SUPERSET_VERSION && \
pip install sqlparse=='0.4.4'
# https://github.com/apache/superset/issues/23742

# Configure Filesystem
VOLUME /etc/superset
VOLUME /home/superset
VOLUME /var/lib/superset

EXPOSE 8088

COPY ./docker-entrypoint.sh /

ENTRYPOINT ["/docker-entrypoint.sh"]
# ENTRYPOINT ["tail", "-f", "/dev/null"]
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ pillow==9.4.0
pyopenssl==23.1.1
wtforms==2.3.3
wtforms-json==0.3.3
werkzeug==2.1.1
mysqlclient==2.1.0
marshmallow_enum
psycopg2-binary
Expand Down
89 changes: 89 additions & 0 deletions docker/superset/templates/2/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# Might be empty
set -e

#
# Always install local overrides first
#

STEP_CNT=5

echo_step() {
cat <<EOF
######################################################################
Init Step ${1}/${STEP_CNT} [${2}] -- ${3}
######################################################################
EOF
}
if [ "$SUPERSET_PASSWORD" ]; then
ADMIN_PASSWORD="$SUPERSET_PASSWORD"
else
ADMIN_PASSWORD="admin"
fi

# Initialize the database
echo_step "1" "Starting" "Applying DB migrations"
superset db upgrade
echo_step "1" "Complete" "Applying DB migrations"

# Create an admin user
echo_step "2" "Starting" "Setting up admin user ( admin / $ADMIN_PASSWORD )"
superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email [email protected] \
--password $ADMIN_PASSWORD
echo_step "2" "Complete" "Setting up admin user"
# Create default roles and permissions
echo_step "3" "Starting" "Setting up roles and perms"
superset init
echo_step "3" "Complete" "Setting up roles and perms"


if [ "$SUPERSET_LOAD_EXAMPLES" = "yes" ]; then
# Load some data to play with
echo_step "4" "Starting" "Loading examples"
superset load_examples
echo_step "4" "Complete" "Loading examples"
else
echo_step "4" "Complete" "No examples loaded"
fi

HYPHEN_SYMBOL='-'

echo_step "5" "Starting" "Launching the app"
gunicorn \
--bind "${SUPERSET_BIND_ADDRESS:-0.0.0.0}:${SUPERSET_PORT:-8088}" \
--access-logfile "${ACCESS_LOG_FILE:-$HYPHEN_SYMBOL}" \
--error-logfile "${ERROR_LOG_FILE:-$HYPHEN_SYMBOL}" \
--workers ${SERVER_WORKER_AMOUNT:-1} \
--worker-class ${SERVER_WORKER_CLASS:-gthread} \
--threads ${SERVER_THREADS_AMOUNT:-20} \
--timeout ${GUNICORN_TIMEOUT:-60} \
--limit-request-line ${SERVER_LIMIT_REQUEST_LINE:-0} \
--limit-request-field_size ${SERVER_LIMIT_REQUEST_FIELD_SIZE:-0} \
"${FLASK_APP}"
15 changes: 15 additions & 0 deletions docker/superset/templates/2/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cryptography==38.0.4
dnspython==2.1.0
email-validator==1.1.3
markupsafe==2.1.1
pillow==9.4.0
pyopenssl==23.1.1
wtforms==2.3.3
wtforms-json==0.3.3
werkzeug==2.1.1
mysqlclient==2.1.0
marshmallow_enum
psycopg2-binary
pybigquery
statsd
statsd-client
54 changes: 54 additions & 0 deletions docker/superset/templates/3/Dockerfile.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{{- $superset := index .Packages "superset" -}}


FROM {{ .From }}

ARG SUPERSET_VERSION="{{ $superset.Version }}"
ENV C2D_RELEASE "{{ $superset.Version }}"
ENV SUPERSET_VERSION ${SUPERSET_VERSION}
ENV FLASK_APP="superset.app:create_app()"
ENV SUPERSET_HOME=/var/lib/superset

# Installing python3 and dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev openssl\
libldap2-dev default-libmysqlclient-dev

# Create superset user & install dependencies
WORKDIR /home/superset
COPY requirements*.txt ./
RUN groupadd supergroup && \
useradd -U -G supergroup superset && \
mkdir -p /etc/superset && \
mkdir -p $SUPERSET_HOME && \
chown -R superset:superset /etc/superset && \
chown -R superset:superset $SUPERSET_HOME && \
apt-get update && \
apt-get install -y \
curl \
freetds-bin \
freetds-dev \
libaio1 \
libecpg-dev \
libffi-dev \
libldap2-dev \
libpq-dev \
libsasl2-2 \
libsasl2-modules-gssapi-mit && \
pip install --disable-pip-version-check --upgrade "pip==23.2.1" && \
pip install -r requirements.txt && \
pip install apache-superset==$SUPERSET_VERSION && \
pip install sqlparse=='0.4.4'
# https://github.com/apache/superset/issues/23742

# Configure Filesystem
VOLUME /etc/superset
VOLUME /home/superset
VOLUME /var/lib/superset

EXPOSE 8088

COPY ./docker-entrypoint.sh /

ENTRYPOINT ["/docker-entrypoint.sh"]
# ENTRYPOINT ["tail", "-f", "/dev/null"]
89 changes: 89 additions & 0 deletions docker/superset/templates/3/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# Might be empty
set -e

#
# Always install local overrides first
#

STEP_CNT=5

echo_step() {
cat <<EOF
######################################################################
Init Step ${1}/${STEP_CNT} [${2}] -- ${3}
######################################################################
EOF
}
if [ "$SUPERSET_PASSWORD" ]; then
ADMIN_PASSWORD="$SUPERSET_PASSWORD"
else
ADMIN_PASSWORD="admin"
fi

# Initialize the database
echo_step "1" "Starting" "Applying DB migrations"
superset db upgrade
echo_step "1" "Complete" "Applying DB migrations"

# Create an admin user
echo_step "2" "Starting" "Setting up admin user ( admin / $ADMIN_PASSWORD )"
superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email [email protected] \
--password $ADMIN_PASSWORD
echo_step "2" "Complete" "Setting up admin user"
# Create default roles and permissions
echo_step "3" "Starting" "Setting up roles and perms"
superset init
echo_step "3" "Complete" "Setting up roles and perms"


if [ "$SUPERSET_LOAD_EXAMPLES" = "yes" ]; then
# Load some data to play with
echo_step "4" "Starting" "Loading examples"
superset load_examples
echo_step "4" "Complete" "Loading examples"
else
echo_step "4" "Complete" "No examples loaded"
fi

HYPHEN_SYMBOL='-'

echo_step "5" "Starting" "Launching the app"
gunicorn \
--bind "${SUPERSET_BIND_ADDRESS:-0.0.0.0}:${SUPERSET_PORT:-8088}" \
--access-logfile "${ACCESS_LOG_FILE:-$HYPHEN_SYMBOL}" \
--error-logfile "${ERROR_LOG_FILE:-$HYPHEN_SYMBOL}" \
--workers ${SERVER_WORKER_AMOUNT:-1} \
--worker-class ${SERVER_WORKER_CLASS:-gthread} \
--threads ${SERVER_THREADS_AMOUNT:-20} \
--timeout ${GUNICORN_TIMEOUT:-60} \
--limit-request-line ${SERVER_LIMIT_REQUEST_LINE:-0} \
--limit-request-field_size ${SERVER_LIMIT_REQUEST_FIELD_SIZE:-0} \
"${FLASK_APP}"
15 changes: 15 additions & 0 deletions docker/superset/templates/3/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cryptography==38.0.4
dnspython==2.1.0
email-validator==1.1.3
markupsafe==2.1.1
pillow==9.4.0
pyopenssl==23.1.1
wtforms==2.3.3
wtforms-json==0.3.3
werkzeug==2.1.1
mysqlclient==2.1.0
marshmallow_enum
psycopg2-binary
pybigquery
statsd
statsd-client
22 changes: 19 additions & 3 deletions docker/superset/versions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,32 @@ versions:
from: marketplace.gcr.io/google/c2d-debian11
packages:
superset:
version: 2.1.0
version: 2.1.1
repo: superset2
tags:
- 2.1.0-debian11
- 2.1.1-debian11
- 2.1-debian11
- 2-debian11
- 2.1.0
- 2.1.1
- '2.1'
- '2'
- latest
templateSubDir: 2
- dir: 3/debian11/3.0
from: marketplace.gcr.io/google/c2d-debian11
packages:
superset:
version: 3.0.0
repo: superset3
tags:
- 3.0.0-debian11
- 3.0-debian11
- 3-debian11
- 3.0.0
- '3.0'
- '3'
- latest
templateSubDir: 3
- dir: exporter
excludeTests:
- tests/functional_tests/running_test.yaml
Expand Down

0 comments on commit ddb0cbd

Please sign in to comment.