Commit 4c363875 authored by Min RK's avatar Min RK Committed by GitHub

Merge pull request #305 from betamaniac/master_ppc64le

Dockerfile version for power ppc64le
parents 18e5563b 38ae459b
......@@ -8,6 +8,11 @@ SHELL:=bash
OWNER:=jupyter
# need to list these manually because there's a dependency tree
ARCH:=$(shell uname -m)
ifeq ($(ARCH),ppc64le)
ALL_STACKS:=base-notebook
else
ALL_STACKS:=base-notebook \
minimal-notebook \
r-notebook \
......@@ -16,6 +21,7 @@ ALL_STACKS:=base-notebook \
datascience-notebook \
pyspark-notebook \
all-spark-notebook
endif
ALL_IMAGES:=$(ALL_STACKS)
......@@ -31,12 +37,22 @@ help:
@echo
@grep -E '^[a-zA-Z0-9_%/-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
arch_patch/%: ## apply hardware architecture specific patches to the Dockerfile
if [ -e ./$(notdir $@)/Dockerfile.$(ARCH).patch ]; then \
if [ -e ./$(notdir $@)/Dockerfile.orig ]; then \
cp -f ./$(notdir $@)/Dockerfile.orig ./$(notdir $@)/Dockerfile;\
else\
cp -f ./$(notdir $@)/Dockerfile ./$(notdir $@)/Dockerfile.orig;\
fi;\
patch -f ./$(notdir $@)/Dockerfile ./$(notdir $@)/Dockerfile.$(ARCH).patch; \
fi
build/%: DARGS?=
build/%: ## build the latest image for a stack
docker build $(DARGS) --rm --force-rm -t $(OWNER)/$(notdir $@):latest ./$(notdir $@)
build-all: $(ALL_IMAGES:%=build/%) ## build all stacks
build-test-all: $(foreach I,$(ALL_IMAGES),build/$(I) test/$(I) ) ## build and test all stacks
build-all: $(foreach I,$(ALL_IMAGES),arch_patch/$(I) build/$(I) ) ## build all stacks
build-test-all: $(foreach I,$(ALL_IMAGES),arch_patch/$(I) build/$(I) test/$(I) ) ## build and test all stacks
dev/%: ARGS?=
dev/%: DARGS?=
......
# Copyright (c) IBM Corporation 2016
# Distributed under the terms of the Modified BSD License.
# Ubuntu image
FROM ppc64le/ubuntu:trusty
MAINTAINER Ilsiyar Gaynutdinov <ilsiyar_gaynutdinov@ru.ibm.com>
USER root
# Install all OS dependencies for notebook server that starts but lacks all
# features (e.g., download as all possible file formats)
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get -yq dist-upgrade \
&& apt-get install -yq --no-install-recommends \
build-essential \
bzip2 \
ca-certificates \
cmake \
git \
locales \
sudo \
wget \
&& apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN echo "LANGUAGE=en_US.UTF-8" >> /etc/default/locale
RUN echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale
RUN echo "LC_TYPE=en_US.UTF-8" >> /etc/default/locale
RUN locale-gen en_US en_US.UTF-8
#build and install Tini for ppc64le
RUN wget https://github.com/krallin/tini/archive/v0.10.0.tar.gz && \
tar zxvf v0.10.0.tar.gz && \
rm -rf v0.10.0.tar.gz
WORKDIR tini-0.10.0/
RUN cmake . && make install
RUN mv ./tini /usr/local/bin/tini && \
chmod +x /usr/local/bin/tini
WORKDIR ..
# Configure environment
ENV CONDA_DIR /opt/conda
ENV PATH $CONDA_DIR/bin:$PATH
ENV SHELL /bin/bash
ENV NB_USER jovyan
ENV NB_UID 1000
ENV HOME /home/$NB_USER
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
# Create jovyan user with UID=1000 and in the 'users' group
RUN useradd -m -s /bin/bash -N -u $NB_UID $NB_USER && \
mkdir -p $CONDA_DIR && \
chown $NB_USER $CONDA_DIR
USER $NB_USER
# Setup jovyan home directory
RUN mkdir /home/$NB_USER/work && \
mkdir /home/$NB_USER/.jupyter && \
echo "cacert=/etc/ssl/certs/ca-certificates.crt" > /home/$NB_USER/.curlrc
# Install conda as jovyan
RUN cd /tmp && \
mkdir -p $CONDA_DIR && \
wget https://repo.continuum.io/miniconda/Miniconda3-4.2.12-Linux-ppc64le.sh && \
/bin/bash Miniconda3-4.2.12-Linux-ppc64le.sh -f -b -p $CONDA_DIR && \
rm -rf Miniconda3-4.2.12-Linux-ppc64le.sh && \
$CONDA_DIR/bin/conda install --quiet --yes conda=4.2.12 && \
$CONDA_DIR/bin/conda config --system --add channels conda-forge && \
$CONDA_DIR/bin/conda config --system --set auto_update_conda false && \
conda clean -tipsy
# Temporary workaround for https://github.com/jupyter/docker-stacks/issues/210
# Stick with jpeg 8 to avoid problems with R packages
RUN echo "jpeg 8*" >> /opt/conda/conda-meta/pinned
# Install Jupyter notebook as jovyan
RUN yes | pip install --upgrade pip
RUN yes | pip install --quiet --no-cache-dir \
'notebook==4.2.*' \
jupyterhub==0.7
USER root
EXPOSE 8888
WORKDIR /home/$NB_USER/work
RUN echo "ALL ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers
# Configure container startup
ENTRYPOINT ["tini", "--"]
CMD ["start-notebook.sh"]
# Add local files as late as possible to avoid cache busting
COPY start.sh /usr/local/bin/
COPY start-notebook.sh /usr/local/bin/
COPY start-singleuser.sh /usr/local/bin/
COPY jupyter_notebook_config.py /home/$NB_USER/.jupyter/
RUN chown -R $NB_USER:users /home/$NB_USER/.jupyter
# Switch back to jovyan to avoid accidental container runs as root
USER $NB_USER
--- Dockerfile 2016-12-08 12:23:10.288198002 -0500
+++ Dockerfile.ppc64le 2016-12-08 12:25:01.518197999 -0500
@@ -1,36 +1,43 @@
-# Copyright (c) Jupyter Development Team.
+# Copyright (c) IBM Corporation 2016
# Distributed under the terms of the Modified BSD License.
-# Debian Jessie image released 2016 May 03.
-FROM debian@sha256:32a225e412babcd54c0ea777846183c61003d125278882873fb2bc97f9057c51
+# Ubuntu image
+FROM ppc64le/ubuntu:trusty
-MAINTAINER Jupyter Project <jupyter@googlegroups.com>
+MAINTAINER Ilsiyar Gaynutdinov <ilsiyar_gaynutdinov@ru.ibm.com>
USER root
# Install all OS dependencies for notebook server that starts but lacks all
# features (e.g., download as all possible file formats)
ENV DEBIAN_FRONTEND noninteractive
-RUN REPO=http://cdn-fastly.deb.debian.org \
- && echo "deb $REPO/debian jessie main\ndeb $REPO/debian-security jessie/updates main" > /etc/apt/sources.list \
- && apt-get update && apt-get -yq dist-upgrade \
+RUN apt-get update && apt-get -yq dist-upgrade \
&& apt-get install -yq --no-install-recommends \
- wget \
+ build-essential \
bzip2 \
ca-certificates \
- sudo \
+ cmake \
+ git \
locales \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-
-RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
- locale-gen
+ sudo \
+ wget \
+ && apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
-# Install Tini
-RUN wget --quiet https://github.com/krallin/tini/releases/download/v0.10.0/tini && \
- echo "1361527f39190a7338a0b434bd8c88ff7233ce7b9a4876f3315c22fce7eca1b0 *tini" | sha256sum -c - && \
- mv tini /usr/local/bin/tini && \
+RUN echo "LANGUAGE=en_US.UTF-8" >> /etc/default/locale
+RUN echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale
+RUN echo "LC_TYPE=en_US.UTF-8" >> /etc/default/locale
+RUN locale-gen en_US en_US.UTF-8
+
+#build and install Tini for ppc64le
+RUN wget https://github.com/krallin/tini/archive/v0.10.0.tar.gz && \
+ tar zxvf v0.10.0.tar.gz && \
+ rm -rf v0.10.0.tar.gz
+WORKDIR tini-0.10.0/
+RUN cmake . && make install
+RUN mv ./tini /usr/local/bin/tini && \
chmod +x /usr/local/bin/tini
+WORKDIR ..
# Configure environment
ENV CONDA_DIR /opt/conda
@@ -58,11 +65,10 @@
# Install conda as jovyan
RUN cd /tmp && \
mkdir -p $CONDA_DIR && \
- wget --quiet https://repo.continuum.io/miniconda/Miniconda3-4.1.11-Linux-x86_64.sh && \
- echo "efd6a9362fc6b4085f599a881d20e57de628da8c1a898c08ec82874f3bad41bf *Miniconda3-4.1.11-Linux-x86_64.sh" | sha256sum -c - && \
- /bin/bash Miniconda3-4.1.11-Linux-x86_64.sh -f -b -p $CONDA_DIR && \
- rm Miniconda3-4.1.11-Linux-x86_64.sh && \
- $CONDA_DIR/bin/conda install --quiet --yes conda==4.1.11 && \
+ wget https://repo.continuum.io/miniconda/Miniconda3-4.2.12-Linux-ppc64le.sh && \
+ /bin/bash Miniconda3-4.2.12-Linux-ppc64le.sh -f -b -p $CONDA_DIR && \
+ rm -rf Miniconda3-4.2.12-Linux-ppc64le.sh && \
+ $CONDA_DIR/bin/conda install --quiet --yes conda=4.2.12 && \
$CONDA_DIR/bin/conda config --system --add channels conda-forge && \
$CONDA_DIR/bin/conda config --system --set auto_update_conda false && \
conda clean -tipsy
@@ -72,15 +78,16 @@
RUN echo "jpeg 8*" >> /opt/conda/conda-meta/pinned
# Install Jupyter notebook as jovyan
-RUN conda install --quiet --yes \
- 'notebook=4.2*' \
- jupyterhub=0.7 \
- && conda clean -tipsy
+RUN yes | pip install --upgrade pip
+RUN yes | pip install --quiet --no-cache-dir \
+ 'notebook==4.2.*' \
+ jupyterhub==0.7
USER root
EXPOSE 8888
WORKDIR /home/$NB_USER/work
+RUN echo "ALL ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers
# Configure container startup
ENTRYPOINT ["tini", "--"]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment