mito’s blog

IT技術メインの雑記。思い立ったが吉日。

[Veracode] VScodeのVeracodeプラグインで静的解析を試す

はじめに

VScodeのVeracodeプラグインで静的解析を試します。
このVeracodeプラグインを使用すると、例えばファイル保存時に自動でスキャンし、コードのセキュリティ上の欠陥を検出してくれます。つまり、セキュアコーディングを実践しやすくなります。



ただし、VScodeのVeracodeプラグインEclipseIntelliJのVeracodeプラグインと比べてスキャンできる言語が少なく、今はJavaScript、TypeScript、C#のみのようです。今後増えるといいですね。


必要なもの

VScodeやVeracodeプラグインのほか、Veracode Platformのアカウントが必要です。


導入手順(Windows)

1. Veracode PlatformでAPI IDとSecretKeyを作成します。

  • Veracode Platformにログインします。
  • 左サイドメニュー「API Credentials」をクリックします。
  • 「Generate API Credentials」をクリックします。
  • IDとSecretKeyをコピーします。


2.クレデンシャルファイルを作成します。

  • ユーザディレクトリ配下に「.veracode」ディレクトリを作成します。
  • 「.veracode」配下に「credentials」ファイルを作成します。
PS C:\Users\xxx\.veracode> cat credentials
[default]
veracode_api_key_id = 【ID】
veracode_api_key_secret = 【SecretKey】
PS C:\Users\xxx\.veracode>


3.Veracode for VS Codeプラグインをインストールします。

  • 拡張機能より、「Veracode for VS Code」をインストールします。
    • Veracodeのみで検索する場合は、提供元がVeracodeであることを確認してください。


サンプルコードのスキャン結果

  • 自動スキャンのほか、右クリックメニュー「Scan with Greenlight」でもスキャンできます。
  • 検出された脆弱性は、InformationalからVery High Severityまでの6段階に分類されます。
  • 該当するソースや何故検知したかの理由も表示されます。


その他

なお、EclipseのVeracode Greenlightプラグインは以下をスキャンできます。

Javaプロジェクトで正しくコンパイルされるJavaファイルおよびパッケージ。
・次のファイルタイプに埋め込まれたJavaScriptASPCSS、EHTML、ES、ES6、HANDLEBARS、HBS、HJS、HTM、HTML、JS、JSX、JSONJSP、MAP、MUSTACHE、PHP、TS、TSXXHTML
Java Server Page(JSP)ファイルおよびJSPファイルを含むフォルダー。
・縮小されていない1JavaScriptファイルおよびJavaScript プロジェクトのJavaScriptファイルを含むフォルダー。

[Jenkins] パイプライン内で$文字列をsedで置換する


はじめに

Jenkinsのパイプラインの「$xxx」をsedコマンドで変換します。


成功パターン

$の前に「\」バックスラッシュをつけ「'」シングルクォーテーションで囲む
sh "sed -i 's/\$xxx/AAA/g' test.txt"


  • Jenkinsfile
pipeline {
    agent any
    
    stages {
        stage('sed') {
            steps {
                sh "echo '\$xxx' > ./test.txt"
                sh "cat test.txt"
                sh "sed -i 's/\$xxx/AAA/g' test.txt"
                sh "cat test.txt"
            }
        }

         stage('delete_ws') {
            steps {
                cleanWs()
            }
        }       
    }
}


  • 実行ログ
Started by user user
[Pipeline] Start of Pipeline
[Pipeline] node
Running on node in /home/ec2-user/workspace/test_job
[Pipeline] {
[Pipeline] stage
[Pipeline] { (sed)
[Pipeline] sh
+ echo '$xxx'
[Pipeline] sh
+ cat test.txt
$xxx
[Pipeline] sh
+ sed -i 's/$xxx/AAA/g' test.txt
[Pipeline] sh
+ cat test.txt
AAA
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (delete_ws)
[Pipeline] cleanWs
[WS-CLEANUP] Deleting project workspace...
[WS-CLEANUP] Deferred wipeout is used...
[WS-CLEANUP] done
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS


失敗パターン

$の前に「\」をつけるのみ
sh "sed -i s/\$xxx/AAA/g test.txt"


  • Jenkinsfile
pipeline {
    agent any
    
    stages {
        stage('sed') {
            steps {
                sh "echo '\$xxx' > ./test.txt"
                sh "cat test.txt"
                sh "sed -i s/\$xxx/AAA/g test.txt"
                sh "cat test.txt"
            }
        }

         stage('delete_ws') {
            steps {
                cleanWs()
            }
        }       
    }
}


  • 実行ログ
    • $xxxを変数として扱い、それが未設定であり初回実行でもあるため、エラーになります。
    • 「\」を付けない場合でも、同様にエラーとなります。
Started by user user
[Pipeline] Start of Pipeline
[Pipeline] node
Running on node in /home/ec2-user/workspace/test_job
[Pipeline] {
[Pipeline] stage
[Pipeline] { (sed)
[Pipeline] sh
+ echo '$xxx'
[Pipeline] sh
+ cat test.txt
$xxx
[Pipeline] sh
+ sed -i s//AAA/g test.txt
sed: -e expression #1, char 0: no previous regular expression
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (delete_ws)
Stage "delete_ws" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE


$の前に「\」をつけ、引数は「"」で、全体は「'」で囲む
sh 'sed -i "s/\$xxx/AAA/g" test.txt'


  • Jenkinsfile
pipeline {
    agent any
    
    stages {
        stage('sed') {
            steps {
                sh "echo '\$xxx' > ./test.txt"
                sh "cat test.txt"
                sh 'sed -i "s/\$xxx/AAA/g" test.txt'
                sh "cat test.txt"
            }
        }

         stage('delete_ws') {
            steps {
                cleanWs()
            }
        }       
    }
}


  • 実行ログ
    • $xxxを変数として扱い、それが未設定であり初回実行でもあるため、エラーになります
Started by user user
[Pipeline] Start of Pipeline
[Pipeline] node
Running on node in /home/ec2-user/workspace/test_job
[Pipeline] {
[Pipeline] stage
[Pipeline] { (sed)
[Pipeline] sh
+ echo '$xxx'
[Pipeline] sh
+ cat test.txt
$xxx
[Pipeline] sh
+ sed -i s//AAA/g test.txt
sed: -e expression #1, char 0: no previous regular expression
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (delete_ws)
Stage "delete_ws" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE


$の前に「\」をつけ、引数は「"」で、全体も「"」で囲む
sh "sed -i "s/\$xxx/AAA/g" test.txt"


  • Jenkinsfile
pipeline {
    agent any
    
    stages {
        stage('sed') {
            steps {
                sh "echo '\$xxx' > ./test.txt"
                sh "cat test.txt"
                sh "sed -i "s/\$xxx/AAA/g" test.txt"
                sh "cat test.txt"
            }
        }

         stage('delete_ws') {
            steps {
                cleanWs()
            }
        }       
    }
}


  • 実行ログ
    • 構文エラーになります。
    • 「'」に置き換えても、全体を囲まない場合でも、構文エラーになります。
Started by user user
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 9: expecting '}', found 's' @ line 9, column 29.
                   sh "sed -i "s/\$xxx/AAA/g" test.txt"
                               ^

1 error
Finished: FAILURE

[Jenkins] パイプラインをDocker outside of Dockerで動かす

はじめに

JenkinsをDokerコンテナで動かすのではなく、JenkinsのパイプラインをDocker outside of Dockerで実行します。

  • DooD(Docker outside of Docker)とは
    • コンテナからコンテナを操作したいときに使用します
    • コンテナ内から、ホストのDocker環境で実行されます。
    • DinD (Docker in Docker)は、コンテナ内でDockerデーモンを起動します。


環境

  • Jenkins : 2.332.2
  • Docker : 20.10.13
  • DockerPipelineプラグイン : 1.28


シェルでコンテナを起動

Dockerイメージは、Dockerがインストールされているイメージを選びます。
ホストのdocker.sockをマウントし、コンテナを起動します。


ホストで表示したDockerイメージが、コンテナ内からでも確認できます。

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
docker       git       cd38c7dd585a   2 days ago   307MB
$ docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock docker:git /bin/ash
/ # docker images  //ホストと同様のイメージが表示されます
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
docker       git       cd38c7dd585a   2 days ago   307MB
/ # exit
$ 


JenkinsパイプラインをDooDで実行

JenkinsパイプラインをDooDで実行し、Dockerイメージを作成します。

  • Jenkinsパイプライン
    • agent dockerの引数argsに、"-v /var/run/docker.sock:/var/run/docker.sock -u root"を指定します。
    • ”-u root”を付けないと、権限がなく失敗します。
pipeline {
    agent {
        docker { 
            image "docker:git"
            args "-v /var/run/docker.sock:/var/run/docker.sock -u root"
        }
    }
    
    stages {
        stage('git_clone') {
            steps {
                sh "git clone https://github.com/dockersamples/node-bulletin-board.git"
            }
        }

        stage('docker_build') {
            steps {
                sh "docker build --tag bulletinboard:1.0 ./node-bulletin-board/bulletin-board-app"
            }
        }
        
        stage('delete_ws') {
            steps {
                cleanWs()
            }
        }       
    }
}


  • 実行ログ
Started by user user
[Pipeline] Start of Pipeline
[Pipeline] node
Running on node in /home/ec2-user/workspace/job_DooD
[Pipeline] {
[Pipeline] isUnix
[Pipeline] withEnv
[Pipeline] {
[Pipeline] sh
+ docker inspect -f . docker:git
.
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] withDockerContainer
node does not seem to be running inside a container
$ docker run -t -d -u 1000:1000 -v /var/run/docker.sock:/var/run/docker.sock -u root -w /home/ec2-user/workspace/job_DooD -v /home/ec2-user/workspace/job_DooD:/home/ec2-user/workspace/job_DooD:rw,z -v /home/ec2-user/workspace/job_DooD@tmp:/home/ec2-user/workspace/job_DooD@tmp:rw,z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** docker:git cat
$ docker top 199eef053ea1abf7afed79c2504b84d761e89a4e28e2089199bf6f899db33340 -eo pid,comm
[Pipeline] {
[Pipeline] stage
[Pipeline] { (git_clone)
[Pipeline] sh
+ git clone https://github.com/dockersamples/node-bulletin-board.git
Cloning into 'node-bulletin-board'...
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (docker_build)
[Pipeline] sh
+ docker build --tag bulletinboard:1.0 ./node-bulletin-board/bulletin-board-app
Sending build context to Docker daemon  45.57kB

Step 1/7 : FROM node:current-slim
current-slim: Pulling from library/node
42c077c10790: Pulling fs layer
()
Step 7/7 : COPY . .
 ---> 13886f72f686
Successfully built 13886f72f686
Successfully tagged bulletinboard:1.0
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (delete_ws)
[Pipeline] cleanWs
[WS-CLEANUP] Deleting project workspace...
[WS-CLEANUP] Deferred wipeout is used...
[WS-CLEANUP] done
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
$ docker stop --time=1 199eef053ea1abf7afed79c2504b84d761e89a4e28e2089199bf6f899db33340
$ docker rm -f 199eef053ea1abf7afed79c2504b84d761e89a4e28e2089199bf6f899db33340
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS


ホストからDockerイメージを確認すると、ビルド元やビルドしたイメージがあります。

$ docker images
REPOSITORY      TAG            IMAGE ID       CREATED          SIZE
bulletinboard   1.0            13886f72f686   19 seconds ago   265MB
docker          git            cd38c7dd585a   2 days ago       307MB
node            current-slim   2d19bed8d228   6 days ago       245MB


参考

[Jenkins] パイプラインをECRに登録したイメージで動かす

はじめに

JenkinsをDokerコンテナで動かすのではなく、JenkinsのパイプラインをECRに登録したイメージで実行します。


環境


インストールするプラグイン


設定手順

  1. Jenkinsの管理->認証情報より、ECRの認証情報を登録します。
  2. dockerグループに、パイプラインを実行するSSHユーザを追加します。
  3. パイプラインのagentに、以下を記載します。
agent {
    docker { 
        image "【AWSアカウント】.dkr.ecr.【リージョン】.amazonaws.com/【リポジトリ名】:【タグ】"
        registryUrl "https://【AWSアカウント】.dkr.ecr.【リージョン】.amazonaws.com"
        registryCredentialsId "ecr:【リージョン】:【認証情報のID】"
    }
}


実行ログ

[Pipeline] withEnv
[Pipeline] {
[Pipeline] withDockerRegistry
$ docker login -u AWS -p ******** https://【AWSアカウント】.dkr.ecr.【リージョン】.amazonaws.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /xxx/jenkins/workspace/xxx@tmp/1a1fd3c9-84f7-44ce-a102-3a035e423d62/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[Pipeline] {
[Pipeline] isUnix
[Pipeline] withEnv
[Pipeline] {
[Pipeline] sh
+ docker inspect -f . 【AWSアカウント】.dkr.ecr.【リージョン】.amazonaws.com/【リポジトリ名】:【タグ】
.
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] withDockerContainer
node does not seem to be running inside a container
$ docker run -t -d -u 1000:1000 -w /xxx/jenkins/workspace/【ジョブ名】 ()
$ docker top 78477694ba08dfb73053461c4846c9c9b56069b80206e2a1557fcf155bd50d78 -eo pid,comm
[Pipeline] {
()
[Pipeline] }
$ docker stop --time=1 78477694ba08dfb73053461c4846c9c9b56069b80206e2a1557fcf155bd50d78
$ docker rm -f 78477694ba08dfb73053461c4846c9c9b56069b80206e2a1557fcf155bd50d78
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // withDockerRegistry
[Pipeline] }
[Pipeline] // withEnv
  • WARNINGについて
    • WARNING! Your password will be stored unencrypted in /xxx/jenkins/workspace/xxx@tmp/1a1fd3c9-84f7-44ce-a102-3a035e423d62/config.json.
    • Jenkinsに登録した認証情報を使用しているため、パスワード********は手動ではなく自動でマスクされており、config.jsonも保存されません。そのため、今回このWARNINGは当てはまりません。
    • パスワードをべた書きした場合、当てはまるのかなと。


その他

パイプライン内でDocker buildしていると不要になったイメージが溜まるので、以下の削除も組み込んでいます。

sh "docker rmi 【リポジトリ名】:【タグ】"
sh "docker image prune -f"

[Packer] HCL2形式でDockerイメージを作成する

はじめに

amazoncorrettoのDockerイメージを作成します。
JSON形式ではなく、HCL2形式で書きます。HCL2形式で。


環境

  • OS : Amazon Linux 2(Cloud 9)
  • Packer : 1.8.0
  • Docker : 20.10.13


Packerのインストール

$ sudo yum install -y yum-utils
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                            | 3.7 kB  00:00:00     
234 packages excluded due to repository priority protections
Package yum-utils-1.1.31-46.amzn2.0.1.noarch already installed and latest version
Nothing to do
$ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
adding repo from: https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
grabbing file https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo to /etc/yum.repos.d/hashicorp.repo
repo saved to /etc/yum.repos.d/hashicorp.repo
$ sudo yum -y install packer
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
234 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package packer.x86_64 0:1.8.0-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================
 Package                         Arch                            Version                            Repository                          Size
=============================================================================================================================================
Installing:
 packer                          x86_64                          1.8.0-1                            hashicorp                           20 M

Transaction Summary
=============================================================================================================================================
Install  1 Package

Total download size: 20 M
Installed size: 145 M
Downloading packages:
packer-1.8.0-1.x86_64.rpm                                                                                             |  20 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : packer-1.8.0-1.x86_64                                                                                                     1/1 
  Verifying  : packer-1.8.0-1.x86_64                                                                                                     1/1 

Installed:
  packer.x86_64 0:1.8.0-1                                                                                                                    

Complete!
$ packer -version
1.8.0


  • Dockerイメージを作成するため、dockerグループにユーザを追加します。
    • cloud 9は、ec2-userが追加済みでした。
$ sudo usermod -aG docker ec2-user
$ cat /etc/group | grep docker
docker:x:992:ec2-user
$ sudo systemctl enable docker
$ sudo shutdown -r now


Packer templateの作成

  • まずは適当なフォルダを作成し、移動します。
$ mkdir packer_test
$ cd packer_test/


  • テンプレートを作成します。
    • ファイル名は「*.pkr.hcl」とします。
$ cat docker-amazoncorretto.pkr.hcl 
packer {
  required_plugins {
    // dockerプラグインを追加します。バージョンについては後述します。
    docker = {
      version = ">= v1.0.0"
      source  = "github.com/hashicorp/docker"
    }
  }
}

// dockerを指定し、利用したいイメージを記載します。
// [https://www.packer.io/plugins/builders/docker:title]
source "docker" "amazoncorretto" {
  image  = "amazoncorretto:18.0.1"
  // コンテナをイメージにコミットします。
  commit = true
}

build {
  name = "build-amazoncorretto"
  sources = [
    "source.docker.amazoncorretto"
  ]
  
  // 期待するイメージに向け、コマンドを記載します。
  // パッケージのインストールで止まらないようyを忘れずに。
  provisioner "shell" {
    inline = [
      "yum install -y git"
    ]
  }
  
  // 付けたいrepositoryとtagの値を記載します。
  post-processor "docker-tag" {
    repository = "baseimage"
    tags       = ["1.0.0"]
  }
}


$ packer init .
Installed plugin github.com/hashicorp/docker v1.0.3 in "/home/ec2-user/.config/packer/plugins/github.com/hashicorp/docker/packer-plugin-docker_v1.0.3_x5.0_linux_amd64"


  • packer fmtコマンドでインデントのずれなどフォーマットを整えてくれます。
    • 整形したファイルがなければ、何も表示されません。
$ packer fmt .
$


  • packer validate コマンドでテンプレートの構文と構成をチェックします。
    • エラーがあると、該当箇所を表示します。
$ packer validate .
The configuration is valid.


実行結果

  • packer buildコマンドを実行します。
$ packer build docker-amazoncorretto.pkr.hcl 
build-amazoncorretto.docker.amazoncorretto: output will be in this color.

==> build-amazoncorretto.docker.amazoncorretto: Creating a temporary directory for sharing data...
==> build-amazoncorretto.docker.amazoncorretto: Pulling Docker image: amazoncorretto:18.0.1
    build-amazoncorretto.docker.amazoncorretto: 18.0.1: Pulling from library/amazoncorretto
    build-amazoncorretto.docker.amazoncorretto: 8de5b65bd171: Pulling fs layer
    build-amazoncorretto.docker.amazoncorretto: ea513dd92a36: Pulling fs layer
    build-amazoncorretto.docker.amazoncorretto: 8de5b65bd171: Verifying Checksum
    build-amazoncorretto.docker.amazoncorretto: 8de5b65bd171: Download complete
    build-amazoncorretto.docker.amazoncorretto: ea513dd92a36: Verifying Checksum
    build-amazoncorretto.docker.amazoncorretto: ea513dd92a36: Download complete
    build-amazoncorretto.docker.amazoncorretto: 8de5b65bd171: Pull complete
    build-amazoncorretto.docker.amazoncorretto: ea513dd92a36: Pull complete
    build-amazoncorretto.docker.amazoncorretto: Digest: sha256:bf51a65227c2fb599f4ef9709149f16694072cfef6e3d2b8933f64fb7f43ea8a
    build-amazoncorretto.docker.amazoncorretto: Status: Downloaded newer image for amazoncorretto:18.0.1
    build-amazoncorretto.docker.amazoncorretto: docker.io/library/amazoncorretto:18.0.1
==> build-amazoncorretto.docker.amazoncorretto: Starting docker container...
    build-amazoncorretto.docker.amazoncorretto: Run command: docker run -v /home/ec2-user/.config/packer/tmp2830417922:/packer-files -d -i -t --entrypoint=/bin/sh -- amazoncorretto:18.0.1
    build-amazoncorretto.docker.amazoncorretto: Container ID: 31aff84d224c99d58e4afaf6f1b6d65a13c3281b4e4ea168d9ee25d98629dff1
()
    build-amazoncorretto.docker.amazoncorretto: Installing:
    build-amazoncorretto.docker.amazoncorretto:  git                       x86_64 2.32.0-1.amzn2.0.1           amzn2-core 126 k
()
    build-amazoncorretto.docker.amazoncorretto:   ustr.x86_64 0:1.0.4-16.amzn2.0.3
    build-amazoncorretto.docker.amazoncorretto:   util-linux.x86_64 0:2.30.2-2.amzn2.0.7
    build-amazoncorretto.docker.amazoncorretto:
    build-amazoncorretto.docker.amazoncorretto: Complete!
==> build-amazoncorretto.docker.amazoncorretto: Committing the container
    build-amazoncorretto.docker.amazoncorretto: Image ID: sha256:c13fe64d1aa9212105d68226f12f4ede5660f1a3e2a3a3211b9f4642cffc1c6c
==> build-amazoncorretto.docker.amazoncorretto: Killing the container: 74bde7cb62627ca378965b2e347368cefb3f937933374284ea8f0bbc9b766a06
==> build-amazoncorretto.docker.amazoncorretto: Running post-processor:  (type docker-tag)
    build-amazoncorretto.docker.amazoncorretto (docker-tag): Tagging image: sha256:c13fe64d1aa9212105d68226f12f4ede5660f1a3e2a3a3211b9f4642cffc1c6c
    build-amazoncorretto.docker.amazoncorretto (docker-tag): Repository: baseimage:1.0.0
Build 'build-amazoncorretto.docker.amazoncorretto' finished after 38 seconds 192 milliseconds.

==> Wait completed after 38 seconds 197 milliseconds

==> Builds finished. The artifacts of successful builds are:
--> build-amazoncorretto.docker.amazoncorretto: Imported Docker image: sha256:c13fe64d1aa9212105d68226f12f4ede5660f1a3e2a3a3211b9f4642cffc1c6c
--> build-amazoncorretto.docker.amazoncorretto: Imported Docker image: baseimage:1.0.0 with tags baseimage:1.0.0


  • Dockerイメージを確認します。
$ docker images
REPOSITORY       TAG             IMAGE ID       CREATED              SIZE
baseimage        1.0.0           c13fe64d1aa9   About a minute ago   912MB
amazoncorretto   18.0.1          05d288c3a055   3 weeks ago          464MB


  • 作成したイメージが確認できました。


その他

HCLに慣れると、Terraformも扱いやすいかなと思います。コメントも簡単に書けますし。