## docker "TASK-BLDG"
### フォルダ構成
```
hayashitooru-no-Mac-mini:
. /home/hayashi/docker/task-bldg
├── Dockerfile
├── README.md
├── data
│ ├── h2.sh
│ ├── h2-1.4.200.jar
│ └── taskdb.mv.db
└── src
├── start.sh
└── task-bldg-0.5.2.war
```
- `./src/`に、`task-bldg.war`を配置する。
- `./data/`フォルダの`*.db`ファイルはない場合は自動的に生成されます。
- `taskdb.mv.db` : h2-1.4データベースのデータ。h2-2系のデータとは互換性がない。過去の入力データはこのファイル内に格納されているため このファイルをここに配置することでデータの移行が完了する。新規にデータベースを作成するときは、このファイルを削除してから `task-bldg.war` を起動すると、新規に `taskdb.mv.db` が作成されます。
### build
#### `macmini:/home/hayashi/docker/task-bldg/Dockerfile`
`Dockerfile` を用意する
```Dockerfile
FROM openjdk:11
EXPOSE 8083
VOLUME /usr/src/data
COPY src/task-bldg-0.5.2.war /usr/src/task-bldg.war
WORKDIR /usr/src/data
ENTRYPOINT ["java", "-jar", "/usr/src/task-bldg.war"]
```
#### build command
- (1) 予め、 `docker.service` を起動しておく
```
$ sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-10-12 13:06:22 JST; 24min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 8964 (dockerd)
Tasks: 11
Memory: 669.4M (peak: 874.1M)
CPU: 21.972s
CGroup: /system.slice/docker.service
└─8964 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
```
- (2) build して docker image を作成する `docker build -t task-bldg:0.5.2 ./`
```
$ cd ~/docker/task-bldg/
$ docker build -t task-bldg:0.5.2 ./
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 112.9MB
Step 1/6 : FROM openjdk:11
---> 47a932d998b7
Step 2/6 : EXPOSE 8083
---> Using cache
---> 1817ca9a9392
Step 3/6 : VOLUME /usr/src/data
---> Using cache
---> 430ab8e7f55d
Step 4/6 : COPY src/task-bldg.war /usr/src/task-bldg.war
---> df9dfb0a4cf1
Step 5/6 : WORKDIR /usr/src/data
---> Running in d5d7a5cf6f34
Removing intermediate container d5d7a5cf6f34
---> 86b78bb9b3c6
Step 6/6 : ENTRYPOINT ["java", "-jar", "/usr/src/task-bldg.war"]
---> Running in d56f09d712ad
Removing intermediate container d56f09d712ad
---> fcbf09842af0
Successfully built fcbf09842af0
Successfully tagged task-bldg:0.1.19
$
```
### 起動
作成された docker の image を起動する
```
$ docker run -id --name TASK-BLDG -v /home/hayashi/docker/task-bldg/data:/usr/src/data -p 8083:8083 task-bldg:0.5.2 /bin/sh
105f4c0795542cd0189483e504c036f84e89556f03d00fe3f01dfeb5fd145e00
$
```
- 起動された dockerコンテナを確認する。
```
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
105f4c079554 task-bldg:0.5.2 "java -jar /usr/src/…" 4 minutes ago Exited (1) About a minute ago TASK-BLDG
$
```
- `task-bldg` が起動するまで 20~30秒ほどかかります。
- Webブラウザから `http://localhost:8083/task-bldg` にアクセスする。
[Webブラウザ](img/Screenshot001.png)
### その他の設定
- 停止した dockerコンテナを再度起動する
```
$ docker start -ai TASK-BLDG
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.18)
2024-10-12 05:38:59.421 INFO 1 --- [ main] osm.surveyor.task.TaskBldgApplication : Starting TaskBldgApplication v0.2.1 using Java 21 on 671cb4d8737c with PID 1 (/usr/src/task-bldg.war started by root in /usr/src/data)
2024-10-12 05:38:59.428 INFO 1 --- [ main] osm.surveyor.task.TaskBldgApplication : No active profile set, falling back to 1 default profile: "default"
2024-10-12 05:39:01.332 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-10-12 05:39:01.461 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 104 ms. Found 3 JPA repository interfaces.
2024-10-12 05:39:02.722 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8083 (http)
2024-10-12 05:39:02.748 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2024-10-12 05:39:02.749 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.83]
:
:
```
その他の設定は下記を参照のこと
- github: [yuuhayashi/task-bldg](https://github.com/yuuhayashi/task-bldg/blob/master/README.md)