Pythonは、ほぼ使ったことがないので、時間もあるので、勉強してみようかと思います。まずは、実行環境を作らないといけないのですが、Mac環境そのままにPythonをインストールをしていいのですが、せっかくなので、DockerでPythonをインストールしてみました。
※前提条件として、Dockerはインストール済みとします。
- Dockerファイルの構成
どこかのフォルダに以下の構成にします。
python/
├ Dockerfile
├ docker-compose.yml
└ opt/
└ sample.py - Dockerfile
Dockerfileは、なにをインストールして、どんな設定をするかをファイルに指定できます。Dockerを構築したあとでもできますが、使い回せるようにDockerfileをつくるのがおすすめです。今回は、python3をインストールします。
※念の為一般ユーザ(user)も追加するようにしました。
FROM python:3
ARG USERNAME=user
ARG GROUPNAME=user
ARG UID=1000
ARG GID=1000
RUN groupadd -g $GID $GROUPNAME && \
useradd -m -s /bin/bash -u $UID -g $GID $USERNAME
USER $USERNAME
WORKDIR /home/$USERNAME/USER root
RUN apt-get update
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xtermRUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptoolsRUN python -m pip install jupyterlab
- docker-compose.yml
docker-compose.ymlは、作成するコンテナ情報を書きます。
working_dirは作成したコンテナにログインした際の初期ディレクトリになります。
volumeはローカルのどのフォルダとコンテナの中の環境フォルダを同期するための設定です。コンテナを削除されたときにもデータだけは残したいものに使います。例えば、ソース・ファイルを置く場所に使うことが多いです。version: '3'
services:
python3:
restart: always
build: .
container_name: 'python3'
working_dir: '/root/'
tty: true
volumes:
- ./opt:/root/opt - sample.py
これは、うまくpythonがインストールされたか確認するために作成するので、ファイルの中身は自由にどうぞ。サンプルを置いときます。
print("test")
- dockerのイメージ作成、コンテナのビルド、コンテナ起動
準備は整いました。それでは、イメージの作成、コンテナのビルドと起動を以下のコマンドで実行しましょうcd python
エラーがなければ、イメージができているか確認
docker compose up -d --builddocker image ls
次にコマンドを実行し、現在走っているコンテナのリストを取得しますdocker container ls
- コンテナへ接続して、サンプルで作ったpythonを実行
問題なくできているのでしたら、最後にコンテナへ接続して、実行してみよう
接続は、
$ docker compose exec python3 bash
で接続して、cd opt
で実行して、testと表示されればOK
python sample.py
おわりに
Dockerは便利なので、いろいろな言語での環境をつくっとくといいかもしれません。