Open5

Docker

ultimatileultimatile
  • 以下のDockerfileを作成してdocker build -t ubuntu-build-esssential .を実行するとubuntu-build-esssentialという名前のimageが作成される.

  • imageを作成したらdocker run -t -i ubuntu-build-esssentialで実行可能.

  • ubuntu-build-esssentialという名前は適当に変えられる

  • Ubuntu環境

  • rootでMPIを実行するとキレられるのでdockerというuserに切り替えている

  • wgetでGitHubから何かを落とそうとするとコケるのでca-certificatesも入れる

  • sudoするときのpasswordはdocker

Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
    apt-utils build-essential sudo git \ 
    cmake wget ca-certificates ninja-build\
    gfortran libopenblas-dev \
    openmpi-bin libopenmpi-dev
RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo
USER docker
# Set up the working directory
WORKDIR /work

# Define an entrypoint to bash for convenience
ENTRYPOINT ["/bin/bash"]
ultimatileultimatile

docker-composeを使う場合

Docker engineは起動しておくこと

docker-compose.yml
services:
  build-env:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./work:/work
    container_name: build-environment
    stdin_open: true
    tty: true

hostの./workdirに/work dirをマウントしている

imageの作成

docker-compose up --build -d

-dないとcurrent shellが返ってこない

shellの実行

docker-compose exec build-env /bin/bash