この記事では、「C++の開発環境をDockerで構築してHello Worldするまでの手順」を解説します。
なるべくシンプルな手順になるよう意識したので、参考にしていただけると幸いです。
C++の開発環境をDockerで構築してHello Worldするまでの手順
今回作成するファイルは以下の3つです。
- Dockerfile
- docker-compose.yaml
- helloworld.cpp
まずは、任意のディレクトリの下に、以下の構成になるようファイルを作成します。
次に、それぞれのファイルの中身を記述していきます。
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 exec app bash
コンテナ内に入ったら、以下のコマンドを実行してhelloWorld.cppをコンパイル(実行可能な状態に変換)します。
※-oの後ろに指定する名前はどんな名前でも大丈夫です
g++ helloWorld.cpp -o helloWorld
コンパイル後は、以下のコマンドを打つことで記述したコードを実行できます。
./helloworld
Hello World が出力できたらOKです。
C++の開発環境をDockerで構築してHello Worldする 終わりに
今回は、「C++の開発環境をDockerで構築してHello Worldする手順」をご紹介しました。
この記事が、DockerとC++を用いた開発を始める上で少しでも参考になっていれば幸いです。
最後まで読んでいただきありがとうございました。