■ はじめに
小ネタ。 以下「やりたいこと」をしたいので、 Dockerfile / Docker Compose でシェルを実行する方法を調べてみた
やりたいこと
* DB構築後、マスタデータを入れる * Kafka構築後、Topicなどを作成する => Kafkaについては、以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2023/07/22/145643
後日談:「DB構築後、マスタデータを入れる」について
* volumesから指定できる。 => 詳細は、以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2023/07/20/025544
目次
【0】実現方法 1)CMD と ENTRYPOINT の違い 【1】CMD / command 1)Dockerfile 2)Docker Compose 【2】ENTRYPOINT / entrypoint 1)Dockerfile 2)Docker Compose
【0】実現方法
* シェルを実行する主な手段は以下の通り。 1)CMD / command 2)ENTRYPOINT / entrypoint
1)CMD と ENTRYPOINT の違い
* 以下のサイトが分かりやすい
https://pocketstudio.net/2020/01/31/cmd-and-entrypoint/
【1】CMD / command
* コンテナ実行時のデフォルト(初期設定)を指定するため
1)Dockerfile
https://docs.docker.jp/engine/reference/builder.html#cmd
FROM ubuntu: latest CMD ["echo","Hello World!"]
2)Docker Compose
https://docs.docker.jp/v1.12/compose/compose-file.html#command
postgres: image: postgres:latest container_name: container_postgres restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password PGPASSWORD: password POSTGRES_DB: sample TZ: "Asia/Tokyo" ports: - 5431:5432 volumes: - postgres:/var/lib/postgresql/data # !! HERE !! command: ./sample.sh volumes: postgres: name: vpg
【2】ENTRYPOINT / entrypoint
* コンテナ実行時にデフォルトで実行するコマンド cf. ENTRYPOINT = 入り口
1)Dockerfile
https://docs.docker.jp/engine/reference/builder.html#entrypoint
FROM ubuntu: latest ENTRYPOINT ["echo","Hello World!"]
2)Docker Compose
https://docs.docker.jp/v1.12/compose/compose-file.html#entrypoint
postgres: image: postgres:latest container_name: container_postgres restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password PGPASSWORD: password POSTGRES_DB: sample TZ: "Asia/Tokyo" ports: - 5431:5432 volumes: - postgres:/var/lib/postgresql/data # !! HERE !! entrypoint: ./sample.sh volumes: postgres:
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker compose ~ PostgreSQL ~
https://dk521123.hatenablog.com/entry/2023/07/20/025544
Docker compose で Kafka構築時に Topic を作るには
https://dk521123.hatenablog.com/entry/2023/07/22/145643