開発するときにDockerはすごく便利。
昔はプロジェクトごとにconda env作ったり、pyenv使ったり、vagrantでマシン作ったりしてました。
今はDockerファイル書いてbuild+runで終わり。
使わなくなったらimage消して、必要なら作って。が簡単にできるようになりました。
pythonでの開発の際に基本的なCentos7の開発環境をDockerで作っておきます。
プロジェクトごとで使用するパッケージが違ったりするからその前のベースイメージを作っておきます。
vim開発なので合わない人向けではないです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
FROM centos:7 LABEL noffuy <3330072-noffuy@users.noreply.gitlab.com> RUN yum install -y bzip2 bzip2-devel gcc gcc-c++ make openssl-devel readline-devel zlib-devel wget curl unzip vim epel-release git && yum install -y tig jq vim-enhanced bash-completion net-tools bind-utils \ && yum install -y https://repo.ius.io/ius-release-el7.rpm \ && yum install -y python36u python36u-libs python36u-devel python36u-pip \ && rm -rf /var/cache/yum/* RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 ENV LC_CTYPE "ja_JP.UTF-8" ENV LC_NUMERIC "ja_JP.UTF-8" ENV LC_TIME "ja_JP.UTF-8" ENV LC_COLLATE "ja_JP.UTF-8" ENV LC_MONETARY "ja_JP.UTF-8" ENV LC_MESSAGES "ja_JP.UTF-8" ENV LC_PAPER "ja_JP.UTF-8" ENV LC_NAME "ja_JP.UTF-8" ENV LC_ADDRESS "ja_JP.UTF-8" ENV LC_TELEPHONE "ja_JP.UTF-8" ENV LC_MEASUREMENT "ja_JP.UTF-8" ENV LC_IDENTIFICATION "ja_JP.UTF-8" ENV LC_ALL ja_JP.UTF-8 WORKDIR /app |
起動したあとpipで必要なものをインストールする感じです。
でも、できればbuildしてrunのタイミングで勝手にやってほしいよね。
ということで、Dockerhubにイメージを作っておきました。
PIP_LISTという環境変数に必要なパッケージを入れれば、起動の際にインストールします。
その後bashが起動するので、/bin/bashとかもやる必要ないです。
1 |
$ docker run --rm --name pyd -it -e PIP_LIST='numpy pandas' noffuy/centos7_python36_dev |
オレオレ環境なので
同じような環境の人がいたら使ってみてね。
*iusのリンクが変わったので修正したよ。
じゃあね〜〜〜〜。