LoginSignup
3
2

Dockerコンテナ上でSpringを使ってHello Worldを楽しむ(in チャレキャラ)

Last updated at Posted at 2023-09-06

はじめに

私は2023-09-02(土)に行われたチャレキャラ コアイベント(オンライン)に参加して、メンター(師匠役、先生役)をしました。
なにをしたかというと学生の開発チームから話を聞いて、困っていることの相談に乗るということをしました。
今年のチャレキャラは、5/27からはじまっています。私自身は今年初参加でした。

3チームの面談をしたところ、そのうち2チームがJavaでWebアプリケーションを作るとのことでした。
前回の面談(8/12)では別のメンターの方がSpringをススメられていましたので、私も同じくSpringをススメておきました。
公式ページを案内しておきました。

私自身は最近、Javaにあまり触れていないのですが、学生からいつ質問が飛んできても良いように、Hello Worldくらいはやっておきたいと思いました。せっかくなので記事をしたためておきます。
Hello Worldつまり環境構築と言い換えてもよいとおもうのですが、ここさえ突破できればあとは個別の話として学生各々でがんばってくださいでもよいと思っています。
0から10すべてを教えるのではなく、0から1までは教えてあとは自走してもらうのがよいと思いますし、環境構築を飽きずに投げ出さずにやりきった人たちなら、あとはかけ算で10まですぐに到達できるものと思います。

この記事では、SpringHello WorldDockerを使って動かしましたということを書いています。

What is チャレキャラ ?

そもそもチャレキャラとは一体何でしょうか。
チャレキャラは九州の学生のための育成型アプリコンテストです。」とのことです。

動画があります。

この動画は過去にチャレキャラに参加してくれた学生が作ってくれた動画です。
チャレキャラの卒業生が、チャレキャラに貢献するというのもチャレキャラの特徴です。

https://challecara.org/ から引用します。

Question Answer
誰が参加できるの? 九州の大学、高専、高校、専門学校に通っていて、アプリ開発やウェブサービス開発に興味のある人を対象としています。 チームでも、お一人でも参加できます。何からはじめたら良いかわからない人をサポートする体制を整えております!
何をするの? 12月のコンテストで作品発表することを目標に、7月から順次開催される開発イベントに参加します。 イベントでは、どのようにアプリやウェブサービスを開発したらよいのかを、 メンター*がやさしく指導します。開発イベント以外の時間にも個別に作業を進めてもらい、 その間はチャレキャラの Slack コミュニティなどを通してサポートします。*主に九州に拠点を置くソフトウェア開発企業からプロのエンジニアが参加しています。
どんな人がいるの? 毎年、九州の各学校からアプリを作りたいという強い思いを持つ学生が集まってきます! 最初からチームで参加する人もいますし、1人で参加して、チャレキャラの中で仲間を見つける人もいます。 本格的なプログラミングははじめての人もいますし、企画力のみで参加する人もいます。そんな皆さんをサポートするため、メンターは九州に拠点を置くソフトウェア開発企業からプロのエンジニアが参加しています。

チャレキャラは九州の学生のための育成型アプリコンテストです。

イゴかす1

Spring Quickstart Guideに従って、Hello Worldをイゴかしてみます。

手順は、Spring Quickstart Guideにすべて書いてあります。

手順1. start.spring.io でプロジェクトを作る

start.spring.ioでは、プロジェクトを作ってくれます。

スクリーンショット 2023-09-05 16.00.13.png

デフォルトから変更したところは、「Add Dependencies」を押して、「Spring Web」を選んだだけです。
あとは「Generate」を押すと、demo.zipをダウンロードできます。
適当な場所に解凍します(unzip)。

手順2. DemoApplication.javaを変更する

Spring Quickstart Guideを参考に、src/main/java/com/example/demo/DemoApplication.javaを変更(コピペ)します。

スクリーンショット 2023-09-05 16.05.47.png

(これは画像ですので、 https://spring.io/quickstart からコピペしてください)

手順3. Run

あとは動かすだけです。
今回はDockerを使って動かしてみます。

プロジェクトのルートで以下のコマンドを実行します。

docker run \
       --rm \
       --mount type=bind,src=$(pwd),dst=/app \
       -w /app \
       -p 8080:8080 \
       amazoncorretto:20.0.2 \
       /app/gradlew bootRun

イメージがamazoncorrettoなのは、javaイメージがDEPRECATEDでして、openjdkイメージもDEPRECATEDでして、それでDEPRECATEDではないイメージとしてたどりついたのがamazoncorrettoでしたというわけです。

少し待って、 http://localhost:8080/hello にアクセスしてみます。

スクリーンショット 2023-09-05 16.08.59.png

やったね:tada::tada::tada:
Hello Worldができました。

クエリパラメータで値を指定すると表示される内容が変わります。
http://localhost:8080/hello?name=Awesome

スクリーンショット 2023-09-05 16.10.15.png

Awesome!!!

さいごに

この記事では、SpringHello WorldDockerを使って動かすことを楽しみました。

Springについてもっと詳しいことを学びたい方は、 https://spring.io/guides へと進んでください。

Dockerについて学びたい方は、公式ページを有志の方が日本語訳されている下記のページがよいでしょう。特に「始め方 - Get started」を一通りやってみるのがオススメです。2h〜4hくらいで終わるとおもいます。「コマンド(cdやls、mkdir、cp、mv等)は知っています。だけどDockerは初めてです」という大学生といっしょに読みながらハンズオンをしたときにだいたいそのくらいの時間で終わりました(私の教え方がいいのかも :interrobang: しれません :sweat_smile:)。

Docker ドキュメント日本語化プロジェクト

イメージ、コンテナ、ボリュームを自分の言葉で語れるようになると「完全に理解した(もちろん例の意味です。製品を利用をするためのチュートリアルを完了できたという意味。)」になれるとおもいます。

それではごいっしょに!
「いやぁ、Qiitaって本当にいいもんですね~。それではまたご一緒に投稿を楽しみましょう」

追伸

チャレキャラに参加のみなさん、がんばってください!

  1. 「動かす」の意。おそらく西日本の方言、たぶん。NervesJPではおなじみ。2017年ころのオートレースの実況では、実況アナウンサーが「針2イゴきます」とはっきり言っていた。

  2. 大時計の針のこと。針がイゴいてある地点まで到達すると選手はスタートを切る。発走の合図。針がイゴきはじめると(おそらく)選手は緊張するし、スタートはその後のレース展開に大きく影響するので、車券を握りしめている観客たちがもっとも緊張する瞬間であるため、先の尖った鋭いものを連想させる針は緊張の暗喩としても言い得て妙。

3
2
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
3
2