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 |