LoginSignup
14
8

More than 3 years have passed since last update.

gccのDocker公式イメージ使ってC++でHelloWorldしてみた

Posted at

C++を扱うことになった

開発中のWebサービス案件でC++のソースコードを扱うことになりました。
とりあえずLinux環境で動けばよいので、 Dockerコンテナ内のgccでC++のソースコードがコンパイル&実行できること を今回の目標とします。
make とかは今回使わないです。軽量化とかも意識してないです。)

今回作ったサンプルコードは以下に置きました。
https://github.com/segurvita/docker-gcc-sample

Dockerイメージを探した

Docker Hubでgccを検索してみたところ、Docker Hub公式のイメージがありました。
https://hub.docker.com/_/gcc/

これを使います。(もっと軽いのあるかもですが、

C++のソースコードを作った

Hello World! します!

hello.cpp
#include <iostream>

int main()
{
    std::cout << "Hello world!" << std::endl;
}

コンパイル&実行のスクリプトを作った

先ほどのcppファイルをコンパイルするスクリプトです。
cppファイルと同じフォルダに置きます。

build.sh
#!/bin/bash

# Compile
g++ hello.cpp -o hello

# Execute
./hello

docker-compose.yml を作った

Docker公式イメージをpullしてから、 build.sh を叩くようにしました!

docker-compose.yml
version: '3'
services:
  gcc-cpp-sample:
    image: 'gcc:9.2'
    volumes:
      - ./cpp:/src/cpp
    working_dir: /src/cpp
    command: ./build.sh

docker-compose.yml と同じ階層に cpp フォルダがあって、その配下に hello.cppbuild.sh を置くようにしました。

実行!

docker-compose up

を実行したところ、 Hello World! が表示されました!

サンプルコード

サンプルコードはこちらです。
https://github.com/segurvita/docker-gcc-sample

こちらでは、記事に書いたことに加えて、C言語のコンパイル&実行もやっています。

さいごに

10年振りくらいにgccを触ったので頭の運動になりました。

本記事の作成にあたり、以下の記事を参考にさせていただきました。わかりやすい記事をありがとうございます。

また、今回使った公式Dockerイメージは結構重いみたいなので、気になる方はこちらをご覧ください。すごくわかりやすいです。

14
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8