VagrantとDockerを用いたC++勉強のための環境構築方法

背景

  • AtCoderの解説動画のプログラムがC++なのでそれを理解するため
  • C++のようなC系の言語をちゃんとやったことがないのでやりたくなったため

環境構築

  • train_cppフォルダを作成し,cdでこの中に移動
mkdir train_cpp
cd train_cpp
  • マウント用にshareフォルダに作成し,その中にtrain_srcフォルダも作成
mkdir share
cd share
mkdir train_src
  • train_cppにVagrantfileを作成し以下のように記述
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
    config.vm.box = "bento/ubuntu-18.04"
    config.vm.synced_folder "./share", "/home/vagrant/share"
    config.vm.define "train_cpp" do |machine|
    machine.vm.network "private_network", ip: "192.168.1.1"
    end
end
  • vmを作成
vagrant up # vm作成
vagrant ssh # vmに接続・アクセス
FROM ubuntu:18.04
ENV DEBISN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -y build-essential
  • shareフォルダ内にdocker-compose.ymlを作成し,以下の内容を記述する
version: '3.7'
services:
  train_cpp:
    build:
      context: .
      dockerfile: Dockerfile
    image: train_cpp
    container_name: train_cpp
    volumes:
    - type: bind
      source: "./train_src"
      target: "/train_src"
  • 以下のコマンドを実行しイメージとコンテナを作成
sudo su
docker-compose build 
docker-compose up
  • 作成したコンテナにアクセスする方法
sudo su
docker-compose run train_cpp bash

感想

  • やっぱり環境構築は時間がかかった.単純に仮想マシンに直で用意すればすぐだったはず......
  • ただ,dockerの勉強にはなったのでそこは良かった.

次にやるとよいことは?

参考ページ