概要
- Python3の都合の良い実行環境が欲しくなったのでdockerで作成しました。
- いつも使ってるOSがCentOS7だ(ubuntuではない。。)
- ENVを切るのがめんどくさい。
- 検証のたびにサーバを準備したくない。
- 検証が終わったら消したい。
事前準備
- 下記をインストールし実行できること。
- docker
- docker-compose
ディレクトリ構成
./---docker-compose.yml
|--Dockerfile
|--requirements.txt # pipインストール用 利用しなければ不要
|--.env # 環境変数用 利用しなければ不要
|--src # pyファイルを配置するディレクトリ
|-- sample.py
各種ファイルの配置
docker-compose.yml
docker-compose.yml
version: '3'
services:
python3:
restart: always
build: .
container_name: 'python3'
working_dir: '/root/src'
tty: true
volumes:
- ./src:/root/src
env_file:
- .env
Dockerfile
FROM python:3
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 xterm
RUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
ADD requirements.txt /root/
RUN pip install -r /root/requirements.txt
requirements.txt
- pipインストールする必要があれば記載する
requirements.txt
requests
.env
- 環境変数を設定する必要があれば記載する
.env
SAMPLE_USER ='root'
sample.py
sample.py
print("hello world")
実行
コンテナを起動
$ docker-compose up -d
スクリプトの実行
- dockerホストになっているサーバからexecでpythonスクリプトを実行できる。
$ docker-compose exec python3 python3 sample.py
hello world
requirements.txtや.envを修正したとき
- 一度停止して再ビルド
$ docker-compose down
$ docker-compose build
$ docker-compose up -d