2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker-composeで都合の良いPython3実行環境を作成する

Last updated at Posted at 2020-11-29

概要

  • 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
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?