c2104
@c2104 (Ark)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

AlmaLinuxイメージのDockerコンテナが起動しない

解決したいこと

Dockerを使用してAlmaLinux, PHP, MySQLの環境を構築しようとしています。
build後にupしようとすると、AlmaLinuxのコンテナが起動しないため、起動できるようにしたいです。
よろしくお願いいたします。

発生している問題・エラー

$ docker compose up
[+] Running 3/3
 ✔ Container hoge-db-1   Recreated                                                           1.1s 
 ✔ Container hoge-app-1  Recreated                                                           0.1s 
 ✔ Container hoge-web-1  Recreated                                                           0.0s 
Attaching to app-1, db-1, web-1
db-1   | 2024-03-19 03:07:39+09:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.26-1debian10 started.
app-1  | [18-Mar-2024 18:07:39] NOTICE: fpm is running, pid 1
app-1  | [18-Mar-2024 18:07:39] NOTICE: ready to handle connections
web-1 exited with code 0
db-1   | 2024-03-19 03:07:39+09:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'

...

以降、appとdbは無事起動するのですが、webはなんどコンテナを起動しようとしても

web-1 exited with code 0
web-1 exited with code 0
web-1 exited with code 0

と続くのみで、他に何も出力されません。

該当するソースコード

Dockerfile_—iautosystem__ワークスペース.png

自分で試したこと

  1. docker compose up web
    web-1 exited with code 0が出力されるのみ
  2. docker compose build --no-cachedocker compose up
    → app,dbは起動するが、webのみ起動しない
  3. コンテナ、イメージをすべて削除後、2を実行
    → app,dbは起動するが、webのみ起動しない
  4. servicesをwebのみにし、ビルドもDockerfileを使用せず、alamalinux/9-baseイメージを直接ビルドする形でdocker compose up
    → webは起動せず、即web-1 exited with code 0が出力されるのみ
0

1Answer

何かを参考にして Dockerfile を書いていますか?

$ docker run -it --rm almalinux/9-base
[root@816d4a2c529d /]# systemctl status
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

Dockerfile に書かれているイメージを起動しても systemctl は動かないようです。
また、このイメージは bash が起動するようになっているので tty を接続しないとそこで終了してしまいます。exit するのはそれが原因です。

Almalinuxをベースとしている webコンテナは httpd を動かすのが目的のようなので httpd イメージを使った方がよさそうです。

基本的な使い方はサイトにも書いてありますし、参考となる解説もネットに色々あると思いますから、ベースイメージを変更して再挑戦してください。

1Like

Your answer might help someone💌