0
0

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備忘録 Ubuntu20.04+pyvenv+pipenv

Last updated at Posted at 2021-06-23

コマンド編

カレントディレクトリにあるDockerfileからaというイメージを生成
$ docker build . -t a

aというイメージからbというコンテナを作成してラン
$ docker run -it -d --name bcd a

作ったbcdというコンテナの中に入る
個人的には.bash_profileやPATHをみる目的で使うことが多い
$ docker exec -it bcd bash

デバッグ編

find . -name "requirements.txt"
ls -la | grep hoge

実際に作ったDockerfile

Dockerfile...
FROM --platform=linux/x86_64 ubuntu:20.04

WORKDIR /work

SHELL ["/bin/bash", "-c"]

RUN apt list --upgradable
RUN apt update

RUN apt install -y build-essential libffi-dev libssl-dev zlib1g-dev liblzma-dev libbz2-dev libreadline-dev libsqlite3-dev git wget

RUN git clone https://github.com/yyuu/pyenv.git ~/.pyenv

# pyenv
ENV PYENV_ROOT /root/.pyenv
ENV PATH $PYENV_ROOT/bin:$PATH
ENV PATH $PYENV_ROOT/shims:${PATH}

# Install Python and set default
RUN pyenv install 3.7.4
RUN pyenv global 3.7.4

# Install pipenv
RUN pip install pipenv

RUN pipenv install \
flake8 \
jupyter \
jupyterlab \
kaggle \
matplotlib \
numpy \
pandas \
pep8 \
scikit-learn \
scipy \
seaborn \
signate \
sympy \
xgboost \
Pillow

備考

  • aptを使うのはよくないらしい。
  • 今の認識だとbash_profileをビルド時に読み込めないっぽいのでENV命令を使う必要がありそう
  • pyenvのglobal,localの挙動よくわからん
  • pipfile,pipfile.lockを使えばもっと簡潔なディレクトリ構成になりそう

【pyvenv】

  • .pyvenv/versions/3.8.10/binの下にあるpipコマンドなどを使用している

https://teratail.com/questions/25930から↓

  • localを指定すると実行したディレクトリ内だけでPythonのバージョンが固定される
  • globalは、フォルダを超えてそのバージョンが使われる
    localはフォルダごとにバージョンを変えたい場合に使用できます。
    globalは、すぐに起動して確認したい場合などで、標準で入っていてほしいバージョンを指定します。
    アプリケーションであればlocalを指定しているほうが、外のバージョンが変わった際に悩まずに済みます。
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?