C++

C++の開発環境をDockerで構築してHello Worldする

C++の開発環境をDockerで構築してHello Worldする

この記事では、「C++の開発環境をDockerで構築してHello Worldするまでの手順」を解説します。

なるべくシンプルな手順になるよう意識したので、参考にしていただけると幸いです。

C++の開発環境をDockerで構築してHello Worldするまでの手順

今回作成するファイルは以下の3つです。

  • Dockerfile
  • docker-compose.yaml
  • helloworld.cpp

 

まずは、任意のディレクトリの下に、以下の構成になるようファイルを作成します。

C++の開発環境をDockerで構築してHello Worldする ディレクトリ構成

 

次に、それぞれのファイルの中身を記述していきます。

Dockerfile

作成したDockerfileに以下の記述を追加して下さい。

FROM ubuntu:latest

RUN apt-get update && apt-get install -y \
  g++

 

FROMではubuntuのイメージを指定します。

 

そして、その下の行でg++(C++のコンパイラ)をインストールしています。

 

シンプルな最小限の設定です。

 

docker-compose.yaml

docker-compose.yamlには以下の記述を追加して下さい。

version: '3'
services:
  app:
    build: ./docker
    volumes:
      - .:/home
    working_dir: /home 
    tty: true

 

C++を動作させるためのappコンテナを立てます。(コンテナ名はappでなくても何でもいいです)

 

buildでは先ほど作成したDockerfileのディレクトリを指定します。

 

volumesではローカルのファイルをコンテナ内にマウント(同期)しています。

これにより、ローカル(コンテナ)内の変更がコンテナ(ローカル)にも反映されます。

 

working_dirでは起点となるディレクトリ(execコマンドでコンテナに入った際のディレクトリ)を指定しています。

 

tty: trueはtty: trueはコンテナを起動させ続ける(永続化させる)ために必要な設定です。

こちらにも説明を書いているのでチェックしてみて下さい。

 

helloworld.cpp

最後に、Hello Worldを出力するための記述をhelloworld.cppに追加します。(C++のファイルには.cppの拡張子を付ける)

#include <bits/stdc++.h>
using namespace std;

int main() {
  cout << "Hello World" << endl;
}

 

シンプルに「Hello World」を出力するだけの記述です。

コンテナの起動

ファイル群が作成できたら、以下のコマンドでappコンテナを起動しましょう。

docker-compose up -d

 

docker-compose psをした際にStateが Up の状態になっていたらOKです。

docker-compose psをした際にStateが Up の状態になっていたらOK

 

コンパイルと実行

次に、以下のコマンドでコンテナ内に入ります。

docker-compose exec app bash

 

コンテナ内に入ったら、以下のコマンドを実行してhelloWorld.cppをコンパイル(実行可能な状態に変換)します。

※-oの後ろに指定する名前はどんな名前でも大丈夫です

g++ helloWorld.cpp -o helloWorld

 

コンパイル後は、以下のコマンドを打つことで記述したコードを実行できます。

./helloworld

 

Hello World が出力できたらOKです。

Hello World が出力できたらOK

 

C++の開発環境をDockerで構築してHello Worldする 終わりに

今回は、C++の開発環境をDockerで構築してHello Worldする手順をご紹介しました。

 

この記事が、DockerとC++を用いた開発を始める上で少しでも参考になっていれば幸いです。

最後まで読んでいただきありがとうございました。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA