본문 바로가기

R관련

R4.x 도커 파일 (dockerfile for R 4.x)

728x90
반응형

1. 개요

R은 파이썬과 함께 데이터 분석에서 많이 사용되는 언어이다. 문제는 라이브러리의 상호성 문제 등으로 골치가 아플 때가 있다. root계정으로 환경을 조작하다보면 우분투를 아예 밀어버리는게 나은 상황이 올 수도 있다.

따라서, 도커 환경에서 R을 구동하는게 적절할 것이다. 이를 위해 ubuntu 20.04의 도커에서 R 4.x 버전에서 생명정보학 (bioinformatics) 분석을 할 때 최소한 (?)으로 필요한 패키지들을 설치한다.

# R 4.x를 구동하기 위한 도커파일임.
FROM ubuntu:20.04

# 이상한 메세지 블락하기
ARG DEBIAN_FRONTEND=noninteractive

# 필요 라이브러리 설치 시작

# Working directory 설정
WORKDIR /home

# 패키지 업데이트
# ubuntu에 기본적으로 필요한거 외에 devtools를 설치하기 위한 프로그램들 설치
RUN apt-get update
RUN apt-get install -y build-essential software-properties-common
RUN apt-get install -y cmake zlib1g-dev wget git libncurses-dev 
RUN apt-get install -y libz-dev liblzma-dev libbz2-dev g++
RUN apt-get install -y libcurl4-gnutls-dev libxml2-dev libssl-dev libfontconfig1-dev
RUN apt-get install -y libharfbuzz-dev libfribidi-dev
RUN apt-get install -y libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev
#apt install -y --reinstall software-properties-common

# R 설치 우분투 20.04임.
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
RUN add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
RUN apt-get update && apt-get install -y r-base r-base-core

# R library 설치
# 아래의 형태대로 진행하면 됨.
# 또는 docker interactive mode실행 후 추가 설치하고 커밋 (commit)할 것
# 이 부분의 문제는 cranR의 버전에 따라서 지원이 안될 수도 있다는 것임.
RUN Rscript -e 'install.packages(c("ggplot2","tidyr","reshape","devtools","BiocManager"))' 


# 파이썬 설치부분 (없으면 아까우니 넣음.
RUN apt-get -y install python3 python
RUN apt-get -y install python3-pip python3-distutils
WORKDIR /home

 

2. 도커 업데이트 법

 여러 방법이 있지만 추가 프로그램을 apt패키지로 추가 설치해야할 수 있으므로 interactive mode에서 하는 것으로 진행하겠다.

  • docker build . --tag [r-도커-이미지-이름] --network host
  • docker run --network host -it r-도커 /bin/bash 
  • R실행 후 설치함.
  • 새로운 터미널을 열고 docker ps를 실행해서 현재 돌고 있는 도커의 id를 찾음
  • docker commit [R-도커-아이디] [r-도커-이지미:latest]
  • 다 끝나면 실행 중인 도커 터미널은 종료함.
  • 다시 도커를 실행해서 잘 작동하는지 확인하면 끝
728x90
반응형

'R관련' 카테고리의 다른 글

[conda] R 4.2.0설치하기  (0) 2023.02.09
DESEQ2  (0) 2020.12.22
sig_barplot  (0) 2020.02.06
CMScaller  (0) 2019.09.03
Efficient R coding-data formatting  (0) 2019.04.02