gccのDocker公式イメージ使ってC++でHelloWorldしてみた
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!
します!
#include <iostream>
int main()
{
std::cout << "Hello world!" << std::endl;
}
コンパイル&実行のスクリプトを作った
先ほどのcppファイルをコンパイルするスクリプトです。
cppファイルと同じフォルダに置きます。
#!/bin/bash
# Compile
g++ hello.cpp -o hello
# Execute
./hello
docker-compose.yml を作った
Docker公式イメージをpullしてから、 build.sh
を叩くようにしました!
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.cpp
と build.sh
を置くようにしました。
実行!
docker-compose up
docker-compose up
を実行したところ、 Hello World!
が表示されました!
サンプルコード
サンプルコードはこちらです。
https://github.com/segurvita/docker-gcc-sample
こちらでは、記事に書いたことに加えて、C言語のコンパイル&実行もやっています。
さいごに
10年振りくらいにgccを触ったので頭の運動になりました。
本記事の作成にあたり、以下の記事を参考にさせていただきました。わかりやすい記事をありがとうございます。
また、今回使った公式Dockerイメージは結構重いみたいなので、気になる方はこちらをご覧ください。すごくわかりやすいです。
Author And Source
この問題について(gccのDocker公式イメージ使ってC++でHelloWorldしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/segur/items/13be78d731008a8c138a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .