#目的
Pythonで画像処理がしたくて開発環境を作ろうと思った次第です。
「Docker-composeでJupyter」又は「Docker-composeでOpenCV」を単体でやってる方は多かったけど、同時にやってるのが見つからなかったのと意外と時間かかったので自分用のメモ。
composeにしたのは毎回コマンド打つのが面倒だった。 ← 知識の浅さを露呈?
ついでにVS CodeでJupyterを使う。

一応Githubに置いておきます。
#Dockerfileとdocker-compose.yml
Docker-composeでJupyterLabを簡単構築を参考に(まるマパクり)させてもらってdocker-compose.ymlを追加する。
そのままだとJupyterのimageしか使えないのでDockerfileに移す。

version: '3'
services:
  jupyterlab:
    # これだとJupyterのimageしか使えないのでDockerfileに移す
    # image: jupyter/datascience-notebook:latest
    build: .
    user: root
    environment:
      NB_UID: 1000
      NB_GID: 100
      GRANT_SUDO: "yes"
    volumes:
       - "./work:/home/jovyan"
    privileged: true
    ports:
      - "8888:8888"
    restart: unless-stopped
    command: start.sh jupyter lab --NotebookApp.token=''

Dockerhubからjjanzic/docker-python3-opencvのimageを使う。
jupyter-dockerから使いたいimageをもってくる。

FROM python:3.7

ARG project_dir=/home/jovyan
WORKDIR $project_dir

FROM jjanzic/docker-python3-opencv

# https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html
FROM jupyter/scipy-notebook:latest

COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

あとはdocker-compose build & upでいける。
ちなみに、下記にしたかったがこれだとうまく立ち上がらない。。。
誰か理由を教えてください。。。

FROM python:3.7
FROM jupyter/scipy-notebook:latest

ARG project_dir=/home/jovyan
WORKDIR $project_dir

# 他に必要なものを入れる
FROM jjanzic/docker-python3-opencv
RUN pip install opencv-python

#JupyterをVS Codeで使う
Jupyterをブラウザで使う分にはこのままで問題ないが、せっかくならVS CodeでJupyterを使いたい。
VS Codeはローカルを参照しているので、拡張機能Remote – Containersを使ってDockerに入る。
使い方はこちらの方が分かり易くまとめてくれてるので参考にしてDockerを立ち上げる。

スクリーンショット 2019-08-16 10.52.40.png

普段使っている拡張機能が反映されないので.devcontainer.jsonのextensionsに追加する。

// See https://aka.ms/vscode-remote/devcontainer.json for format details or
// https://aka.ms/vscode-dev-containers/definitions for sample configurations.
{
	"dockerComposeFile": "docker-compose.yml",
	"service": "jupyterlab",
	"workspaceFolder": "/",
	"extensions": [
		"ms-python.python",
		"donjayamanne.jupyter",
		"formulahendry.auto-close-tag",
		"formulahendry.auto-rename-tag",
		"coenraads.bracket-pair-colorizer",
		"dbaeumer.vscode-eslint",
		"msjsdiag.debugger-for-chrome",
		"ms-azuretools.vscode-docker",
		"donjayamanne.githistory",
		"huizhou.githd",
		"eamodio.gitlens",
		"oderwat.indent-rainbow",
		"ms-ceintl.vscode-language-pack-ja",
		"ibm.output-colorizer",
		"ryu1kn.partial-diff",
		"ionutvmi.path-autocomplete",
		"esbenp.prettier-vscode",
		"wallabyjs.quokka-vscode",
		"mechatroner.rainbow-csv",
		"ms-vscode-remote.remote-containers",
		"humao.rest-client",
		"shan.code-settings-sync",
		"shardulm94.trailing-spaces",
		"octref.vetur",
		"vscode-icons-team.vscode-icons",
		"wakatime.vscode-wakatime"
	]
}
スクリーンショット 2019-08-14 16.14.57.png
スクリーンショット 2019-08-16 10.15.16.png

OpenCVを使ってみる

画像から文字の輪郭を抽出する

スクリーンショット 2019-11-04 16.38.51.png
广告
将在 10 秒后关闭
bannerAds