From 596c29e183ea449cd2ea820150a589717d92a9ea Mon Sep 17 00:00:00 2001 From: Yihui Guo Date: Thu, 4 Aug 2022 20:40:50 +0800 Subject: [PATCH 1/2] build docker image for feathr --- docker/Dockerfile | 35 +++++++++++++++++++++++++++++++++++ docker/supervisord.conf | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 docker/Dockerfile create mode 100644 docker/supervisord.conf diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 000000000..2735306c5 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,35 @@ +FROM python:3.9 + +ARG CODE_SERVER_VERSION=2.1692-vsc1.39.2 +ENV CODE_SERVER_AUTH=none \ + CODE_SERVER_PASSWORD=feathr \ + JUPYTER_TOKEN=feathr + +# install enssential libs +RUN apt-get update && \ + apt-get install -y \ + wget curl git cmake + + +# install useful tools: sshd, jupyterlab and so on... +RUN apt-get update && \ + apt-get install -y supervisor vim sudo zip unzip htop && \ + pip install --no-cache-dir jupyterlab==0.35.4 pandavro + +RUN mkdir /feathr +WORKDIR /feathr +RUN pip install git+https://github.com/linkedin/feathr.git#subdirectory=feathr_project + +# install code-server +RUN mkdir -p /opt/code-server && \ + wget -qO- https://github.com/cdr/code-server/releases/download/${CODE_SERVER_VERSION}/code-server${CODE_SERVER_VERSION}-linux-x86_64.tar.gz | tar -xzf - --strip=1 -C /opt/code-server + + +# copy supervisord configuration and mkdir +COPY supervisord.conf /opt/supervisord.conf +RUN mkdir -p /opt/logs + +# 8080: VsCode, 9090: jupyter +EXPOSE 8080 9090 + +CMD ["supervisord", "-c", "/opt/supervisord.conf"] \ No newline at end of file diff --git a/docker/supervisord.conf b/docker/supervisord.conf new file mode 100644 index 000000000..8550a8ca1 --- /dev/null +++ b/docker/supervisord.conf @@ -0,0 +1,39 @@ +[unix_http_server] +file=/var/run/supervisor.sock ; (the path to the socket file) +chmod=0700 ; sockef file mode (default 0700) + +[supervisorctl] +serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket + +[supervisord] +pidfile=/var/run/supervisord.log +logfile=/opt/logs/supervisord.log +logfile_maxbytes=256MB +logfile_backups=8 +loglevel=info +nodaemon=true + +[program:jupyter] +directory=/ +command=jupyter lab --ip 0.0.0.0 --port 9090 --allow-root --LabApp.token=%(ENV_JUPYTER_TOKEN)s +stdout_logfile=/opt/logs/jupyter.log +autostart=true +autorestart=true +startsecs=1 +startretries=3 +stopasgroup=true +killasgroup=true +priority=1001 + +[program:codeserver] +directory=/ +environment=PASSWORD="%(ENV_CODE_SERVER_PASSWORD)s" +command=/opt/code-server/code-server --host 0.0.0.0 --port 8080 --auth %(ENV_CODE_SERVER_AUTH)s +stdout_logfile=/opt/logs/code-server.log +autostart=true +autorestart=true +startsecs=1 +startretries=3 +stopasgroup=true +killasgroup=true +priority=1002 \ No newline at end of file From 56274e8f6001a7cf7abf4e40ab133a3caed9a03c Mon Sep 17 00:00:00 2001 From: Yihui Guo Date: Tue, 9 Aug 2022 20:02:29 +0800 Subject: [PATCH 2/2] Add docker guidance to dev guide --- docs/dev_guide/images/docker_port_mapping.png | Bin 0 -> 22799 bytes docs/dev_guide/images/jupyterlab_browser.png | Bin 0 -> 54502 bytes docs/dev_guide/images/vscode_browser.png | Bin 0 -> 33260 bytes docs/dev_guide/python_dev_guide.md | 19 ++++++++++++++++++ 4 files changed, 19 insertions(+) create mode 100644 docs/dev_guide/images/docker_port_mapping.png create mode 100644 docs/dev_guide/images/jupyterlab_browser.png create mode 100644 docs/dev_guide/images/vscode_browser.png diff --git a/docs/dev_guide/images/docker_port_mapping.png b/docs/dev_guide/images/docker_port_mapping.png new file mode 100644 index 0000000000000000000000000000000000000000..35951c0b9bcb6af7d070baa7d1e67324144bae55 GIT binary patch literal 22799 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 CmodKp literal 0 HcmV?d00001 diff --git a/docs/dev_guide/python_dev_guide.md b/docs/dev_guide/python_dev_guide.md index 73bc649ba..54e43f9fc 100644 --- a/docs/dev_guide/python_dev_guide.md +++ b/docs/dev_guide/python_dev_guide.md @@ -31,6 +31,25 @@ We use [Google Python Style Guide](https://google.github.io/styleguide/pyguide.h Run `pytest` in this folder to kick off the integration test. The integration test will test the creation of feature dataset, the materialization to online storage, and retrieve from online storage, as well as the CLI. It usually takes 5 ~ 10 minutes. It needs certain keys for cloud resources. +## Using Docker + +We provide a dockerfile with feathr installed, and with embedded vscode server, and jupyter lab. +To build the docker, navigate to Feathr root folder, and use following command to build a docker file: +`docker build -t docker` + +Run the docker image with port mapping. +![dockerportmapping](./images/docker_port_mapping.png) + + +8080 : VsCode (default password is 'feathr') + +9090: Jupyter Lab (default password is 'feathr') + +With the docker image running, open your browser and access +`localhost:` to access apps. +![codeserver](./images/vscode_browser.png) +![jupyterlab](./images/jupyterlab_browser.png) + ## Using Virtual Environment