0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dev ContainersでJava8 AzureFunctions環境構築時に沼ったのでメモ

Posted at

今更Java8でAzureFunctionsを構築する人なんていないと思いますが、構築の際に沼ったのでメモとして記載します(試してないですが多分Java11でも発生する)。

VSCodeからだと簡単にdevcontainerの環境を作ることができます。

  1. Dev Containersの拡張機能をインストール
  2. F1を押して開発コンテナー: コンテナー機能の構築(Dev Containers: Configure Container Features)を選択
  3. Azure Functions (Java)を選択
  4. 8-bullseyeを選択(8-bookwormを選択するとコンテナビルド時にエラーで止まる)
  5. インストールする追加機能は自由に
  6. オプションも自由に
  7. 開発コンテナー: コンテナーで再度開く(Dev Containers: Reopen in Container)

これでコンテナ完成かと思いきや

バージョン確認

$ java -version
openjdk version "1.8.0_372"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_372-b07)
OpenJDK 64-Bit Server VM (Temurin)(build 25.372-b07, mixed mode)

$ mvn -v
Unrecognized option: --enable-native-access=ALL-UNNAMED
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Mavenのバージョン情報が取れない・・・
色々調べているとMavenの4.0.0がインストールされているっぽい
4.0.0はJava17以上が必須要件

Mavenのバージョン指定

devcontainer.json
    "ghcr.io/devcontainers/features/java:1": {
      "version": "none",
      "installMaven": true,
      "mavenVersion": "3.8.8"
    }

mavenVersionを追記しましょう(投稿時の安定版は3.8.8)。
コンテナのリビルドを行い、再度バージョン確認

$ mvn -v
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /usr/local/sdkman/candidates/maven/current
Java version: 1.8.0_372, vendor: Temurin, runtime: /usr/local/sdkman/candidates/java/8.0.372-tem/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.133.1-microsoft-standard-wsl2", arch: "amd64", family: "unix"

:thumbsup:
ここまでたどり着くのに大分沼りました・・・

プロジェクト作成

あとはMS公式のテンプレートがあるのでそれに沿って構築すれば動作確認までできます。

同じように沼った人をこの記事で一人でも助けられたら幸いです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?