DockerでCentOS7上にGo開発環境を構築
Dockerfile
FROM centos:7
# configure root user
RUN echo 'root:root' | chpasswd
# configure development user
ARG user=me
RUN groupadd ${user} && \
useradd -g ${user} -m ${user} -s /bin/bash && \
echo "${user}:${user}" | chpasswd
# install essentials
RUN yum -y update && \
yum -y install vim less wget zip unzip make git && \
yum clean all
# install Go Development environment
ARG go_archive=go1.12.6.linux-amd64.tar.gz
RUN curl -O https://dl.google.com/go/${go_archive} && \
tar -C /usr/local -xzf ${go_archive} && \
rm ${go_archive} && \
echo "export PATH=$PATH:/usr/local/go/bin" >> /home/${user}/.bashrc
イメージビルド
docker image build -f ./Dockerfile -t centos7:dev_go .
コンテナ生成&起動
docker container run -i -t --rm centos7:dev_go su - me
ホストをマウントする場合
docker container run -i -t --rm \
--mount type=bind,src=/Users/me/code,dst=/home/me/code \
centos7:dev_go su - me
DockerでUbuntu18.04上にGo開発環境を構築
Dockerfile
FROM ubuntu:18.04
# configure root user
RUN echo 'root:root' | chpasswd
# configure development user
ARG user=me
RUN groupadd ${user} && \
useradd -g ${user} -m ${user} -s /bin/bash && \
echo "${user}:${user}" | chpasswd
# install essentials
RUN apt update && apt -y upgrade && \
apt -y install vim less wget curl zip make git && \
apt clean
# install Go Development environment
ARG GO_ARCHIVE=go1.12.6.linux-amd64.tar.gz
RUN cd ~ && curl -O https://dl.google.com/go/${GO_ARCHIVE} && tar -C /usr/local -xzf ${GO_ARCHIVE} && rm ${GO_ARCHIVE} && \
echo "export PATH=$PATH:/usr/local/go/bin" >> /home/${user}/.bashrc
イメージビルド
docker image build -f ./Dockerfile -t ubuntu18.04:dev_go .
コンテナ生成&起動
docker container run -i -t --rm ubuntu18.04:dev_go su - me
ホストをマウントする場合
docker container run -i -t --rm \
--mount type=bind,src=/Users/me/code,dst=/home/me/code \
ubuntu18.04:dev_go su - me