久々にDockerを使った。
GeneXusとかも使ったのでメモ
Docker for Windows インストール
Hyper-V 有効化
Windows の機能の有効化または無効化 から Hyper-V を有効にします。
終わったらWindowsを再起動します。
Docker Desktop インストール
以下のURLからexeをダウンロード
https://www.docker.com/products/docker-desktop
WSLの有効化
WSLが有効じゃないとエラーが出るみたいです。私の環境は出なかった。
このへんを参考に有効化する。
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
PowerShellから以下のコマンドを実行する。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
以下のメッセージが出る場合は https://aka.ms/wsl2kernel にアクセスして .msi をダウンロードしてインストールする。
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
起動
正しく起動できれば、ツールバーにくじらが出ます。くじらが赤いとエラーが出てます。
くじらの名前は「Moby Dock」らしい。
バージョン確認
正しくバージョンが表示されれば、まぁ大丈夫でしょう。
docker --version
Docker version 19.03.13, build 4484c46d9d
docker-compose -v
docker-compose version 1.27.4, build 40524192
イメージ取得とコンテナ起動
docker run -d -p 8080:80 --name nginx nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
d121f8d1c412: Pull complete
66a200539fd6: Pull complete
e9738820db15: Pull complete
d74ea5811e8a: Pull complete
ffdacbba6928: Pull complete
Digest: sha256:fc66cdef5ca33809823182c9c5d72ea86fd2cef7713cf3363e1a0b12a5d77500
Status: Downloaded newer image for nginx:latest
5f42d5c5ab7830dfce536aa631db0ba8f9a087b0dafc7bc81faa628ba2c4b27d
http://localhost:8080 にアクセスして起動してるか確認。
コンテナ停止
コマンド
docker stop nginx
GeneXus で Docker
参考URL
参考
Docker にアプリケーションをデプロイする方法wiki.genexus.jp
適当にKB作成(Java)
メニューの ビルド > アプリケーションをデプロイ を選択。
作成した画面をデプロイ対象に入れて、TargetをDocker Imageに設定。
今回の場合は以下のようなURLになります。
http://localhost:8082/servlet/com.gx16u10testkb20201012.wp_test
ブラウザで画面が動けば、とりあえずOKです。
バージョン変更。一応ローカルではTomcat8、Java8で動かしたのでDockerのバージョンも変更。
起動コマンド
docker run --rm -p 8082:8080 【Docker イメージ名】
rmオプションはシャットダウン時にコンテナが削除されます。イメージじゃなくてコンテナがね。
適当にKB作成(C#)
画面は同じ。
メニューの ビルド > アプリケーションをデプロイ を選択。
作成した画面をデプロイ対象に入れて、TargetをDocker Imageに設定。
↑の流れでやってると、DockerがLinuxのままになってるので、ツールバーの
Dockerアイコンを右クリックして Switch to Windows Containers… をクリック。
デプロイボタンを押すんですが、これ初回めっちゃ長いです。
ダウンロードしてから容量見たら12GBもあった。
2回目からは早いw
無事に12GBダウンロードとか終わると、Dockerに新しいイメージが作成されてます。
C#だとこんな感じのURLになるはずです。
http://localhost:81/wp_test.aspx
起動コマンド
docker run --rm -p 81:80 【Docker イメージ名】
rmオプションはシャットダウン時にコンテナが削除されます。イメージじゃなくてコンテナがね。
まとめ
以外と手間取った(主にダウンロードに・・・・)。
実行環境の構築にかかる手間を削減できるし、開発者全員がほぼ同じ環境でテスト等できるのはいいことだと思います。
使える場面とかあれば使ってみたいです。
以上です。