valencia日誌

valenciaの事は少しだけ話すかも

Perlの実行環境の入っているDockerイメージを作る

ここを参考に入れてみた。

Python実行環境の入っているDockerイメージを作る

pyenvをplenvに置き換えただけの簡単のDockerfileです。

FROM centos:6.4

RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
RUN yum update -y
RUN yum install -y passwd
RUN yum install -y sudo
RUN yum install -y gcc
RUN yum install -y gcc-c++
RUN yum install -y make
RUN yum install -y vim
RUN yum install -y git
RUN yum install --enablerepo=epel -y mosh
RUN yum install -y openssl-devel
RUN yum install -y zlib-devel
RUN yum install -y readline-devel
RUN yum install -y bzip2-devel
RUN yum install -y libevent-devel
RUN yum install -y openssh
RUN yum install -y openssh-server
RUN yum install -y openssh-clients

# create user
RUN useradd python_spameggs
RUN passwd -f -u python_spameggs
RUN mkdir -p /home/python_spameggs/.ssh
ADD ./authorized_keys /home/python_spameggs/.ssh/
RUN chown -R python_spameggs /home/python_spameggs/.ssh; chmod 700 /home/python_spameggs/.ssh; chmod 600 /home/python_spameggs/.ssh/authorized_keys
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config

# sudoers
RUN echo "python_spameggs ALL=(ALL) ALL" >> /etc/sudoers.d/python_spameggs

# lang
## plenv
RUN mkdir -p /home/python_spameggs/.plenv
RUN chown -R python_spameggs /home/python_spameggs/.plenv; chmod 700 /home/python_spameggs/.plenv
RUN su python_spameggs -c "git clone git://github.com/tokuhirom/plenv.git /home/python_spameggs/.plenv"
RUN su python_spameggs -c "git clone git://github.com/tokuhirom/Perl-Build.git /home/python_spameggs/.plenv/plugins/perl-build/"
RUN echo 'export PLENV_ROOT="${HOME}/.plenv"' >> /home/python_spameggs/.bash_profile
RUN echo 'export PATH="${PLENV_ROOT}/bin:${PATH}"' >> /home/python_spameggs/.bash_profile
RUN echo 'eval "$(plenv init -)"' >> /home/python_spameggs/.bash_profile
RUN chown -R python_spameggs /home/python_spameggs/.bash_profile; chmod 644 /home/python_spameggs/.bash_profile
RUN su python_spameggs -c ". /home/python_spameggs/.bash_profile; plenv install 5.18.2"

RUN /etc/init.d/sshd start
RUN /etc/init.d/sshd stop

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]

まだまだ、微妙なところがあるだろうけどメモとして。

 

追記(2014/04/23)

# perl(plenv)
USER python_spameggs
WORKDIR /home/python_spameggs
RUN mkdir .plenv && chmod 700 .plenv
RUN git clone git://github.com/tokuhirom/plenv.git .plenv/
RUN git clone git://github.com/tokuhirom/Perl-Build.git .plenv/plugins/perl-build/
RUN echo 'export PLENV_ROOT="${HOME}/.plenv"' >> .bash_profile
RUN echo 'export PATH="${PLENV_ROOT}/bin:${PATH}"' >> .bash_profile
RUN echo 'eval "$(plenv init -)"' >> .bash_profile
ENV PLENV_ROOT /home/python_spameggs/.plenv
ENV PATH ${PLENV_ROOT}/bin:${PATH}
RUN plenv install 5.18.2

少しやり方を変えてみた。

こっちのほうがいいのかな。