mirror of https://github.com/apache/superset.git
64 lines
1.8 KiB
Docker
64 lines
1.8 KiB
Docker
FROM python:3.6
|
|
|
|
MAINTAINER Xiao Hanyu <hanyu.xiao@shopeemobile.com>
|
|
|
|
# Add a normal user
|
|
RUN useradd --user-group --create-home --shell /bin/bash work
|
|
|
|
# Configure environment
|
|
ENV LANG=C.UTF-8 \
|
|
LC_ALL=C.UTF-8 \
|
|
HOME=/home/work
|
|
|
|
RUN apt-get update -y
|
|
|
|
# Install some dependencies
|
|
# http://airbnb.io/superset/installation.html#os-dependencies
|
|
RUN apt-get update -y && apt-get install -y build-essential libssl-dev \
|
|
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev
|
|
|
|
RUN apt-get install -y vim less postgresql-client redis-tools
|
|
|
|
# Install nodejs for custom build
|
|
# https://github.com/apache/incubator-superset/blob/master/docs/installation.rst#making-your-own-build
|
|
# https://nodejs.org/en/download/package-manager/
|
|
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
|
|
RUN apt-get install -y nodejs
|
|
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -; \
|
|
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list; \
|
|
apt-get update; \
|
|
apt-get install -y yarn
|
|
|
|
RUN mkdir $HOME/incubator-superset
|
|
|
|
WORKDIR $HOME/incubator-superset
|
|
|
|
COPY ./ ./
|
|
|
|
RUN mkdir -p /home/work/.cache
|
|
RUN pip install --upgrade setuptools pip
|
|
RUN pip install -r requirements.txt
|
|
RUN pip install -r requirements-dev.txt
|
|
RUN pip install -e .
|
|
|
|
ENV PATH=/home/work/incubator-superset/superset/bin:$PATH \
|
|
PYTHONPATH=./superset/:$PYTHONPATH
|
|
|
|
COPY docker-entrypoint.sh /usr/local/bin/
|
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
|
|
|
|
COPY ./superset ./superset
|
|
RUN chown -R work:work $HOME
|
|
|
|
USER work
|
|
|
|
RUN cd superset/assets && yarn
|
|
RUN cd superset/assets && npm run build
|
|
|
|
HEALTHCHECK CMD ["curl", "-f", "http://localhost:8088/health"]
|
|
|
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
|
|
|
EXPOSE 8088
|