Skip to content

mnagaku/naumanni-exercises

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ナウマンを改象\n",
    "\n",
    "WindowsでもMacでもLinuxでも、Dockerをインストールすれば、以下に説明する手順で、主にwebブラウザ経由で、naumanniをビルドしたり、実行したり、改造したりできる。\n",
    "\n",
    "# 使い方\n",
    "\n",
    "## JupyterLab起動\n",
    "\n",
    "dockerコマンドが使えるとこで、\n",
    "\n",
    "```\n",
    "# docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 8888:8888 -e GRANT_SUDO=yes --user root --name minimal-lab mnagaku/minimal-lab start-notebook.sh --NotebookApp.token=''\n",
    "```\n",
    "\n",
    "を実行するとJupyterLabが8888番ポートでアクセスできる状態で起動する。\n",
    "\n",
    "## JupyterLab接続\n",
    "\n",
    "webブラウザから、起動したJupyterLabにアクセスする。例えば、操作しているPC上に起動した場合は、localhostの8888番ポートにアクセスすればよいので、\n",
    "\n",
    "```\n",
    "http://localhost:8888/lab\n",
    "```\n",
    "\n",
    "でアクセスできる。\n",
    "\n",
    "## readme.ipynbのUpload\n",
    "\n",
    "webブラウザで、JupyterLabのHome画面が出たら、左上にある「下線に上向き矢印」ボタンから、この文書「readme.ipynb」をアップロードする。アップロードが完了して、Home画面の一覧に「readme.ipynb」が表示されたら、クリックして「readme.ipynb」での操作に移る。\n",
    "\n",
    "## JupyterLabコンテナ内からdockerコマンドを使えるようにする\n",
    "\n",
    "念のため、コンテナ内のモジュールをupdateしてから、dockerコマンドをインストールする。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "sudo -i\n",
    "apt-get update\n",
    "apt-get upgrade -y\n",
    "apt-get install -y curl\n",
    "curl -fsSL https://get.docker.com/builds/Linux/x86_64/docker-17.05.0-ce.tgz | tar -xzC /usr/local/bin --strip=1 docker/docker\n",
    "docker --version"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## naumanniのビルド環境を整える\n",
    "\n",
    "まずはnode.jsから。\n",
    "node >= v7.5.0 であることを確認する。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "sudo -i\n",
    "curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -\n",
    "apt-get install -y nodejs\n",
    "nodejs -v"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "次にyarn。\n",
    "yarn >= 0.23.4 であることを確認する。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "sudo -i\n",
    "curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -\n",
    "echo \"deb https://dl.yarnpkg.com/debian/ stable main\" | tee /etc/apt/sources.list.d/yarn.list\n",
    "apt-get update\n",
    "apt-get install -y yarn\n",
    "yarn"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## naumanniのソースをクローンする\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "rm -rf naumanni\n",
    "git clone --depth 1 https://github.com/naumanni/naumanni.git"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## naumanniをビルドする\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "cd naumanni\n",
    "yarn\n",
    "yarn run build"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## naumanniのコンテナをビルドする\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "sudo docker rm -f nora\n",
    "sudo docker rmi nora/naumanni\n",
    "cd naumanni\n",
    "sudo docker build -t nora/naumanni .\n",
    "sudo docker images"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## naumanniを実行する\n",
    "\n",
    "```\n",
    "http://localhost/\n",
    "```\n",
    "\n",
    "でアクセスできる。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "sudo docker run -d -p 80:80 --name nora nora/naumanni"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 改象\n",
    "\n",
    "左に表示されている「Files」から、\n",
    "\n",
    "naumanni > src > js > utils > html.es6\n",
    "\n",
    "と辿って、html.es6をダブルクリックすると、html.es6を編集するタブが開く。\n",
    "\n",
    "_expandMastodonStatus()とゆー、サーバから取ってきた呟きを正規化する処理があるので、\n",
    "\n",
    "```\n",
    "function _expandMastodonStatus(content) {\n",
    "  content = 'おっぱい';\n",
    "```\n",
    "\n",
    "と1行足すと、みんなの呟きを強制的に書き換えることができる。\n",
    "\n",
    "変更を保存した後、ビルド・コンテナのビルド・実行で、動作を確認できる。\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

About

ナウマンを改象

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published