ec-cube icon indicating copy to clipboard operation
ec-cube copied to clipboard

ローカルでビルドしたdocker imageを利用すると起動できない

Open Meganezaru opened this issue 10 months ago • 6 comments

概要(Overview)

docker-compose.ymlのコメントとして記載されているdocker buildを利用してイメージを作成したのち、docker-compose up -dすると、ec-cubeコンテナが異常終了してしまう

error logとして exec /usr/local/bin/docker-php-entrypoint: no such file or directory と表示される

再現手順(Procedure)

  1. ec-cubeリポジトリをcloneしディレクトリ内へ移動
  2. docker build -t ec-cube --no-cache --pull --build-arg TAG=8.1-apache を実行
  3. docker tag ec-cube ghcr.io/ec-cube/ec-cube-php:8.1-apacheを実行
  4. docker-compose up -dを実行(ec-cubeコンテナが異常終了する)

ec-cubeイメージのエントリーポイントを/bin/bashに指定してコンテナを起動し以下の確認を実施

  1. /usr/local/bin/docker-php-entrypointファイルの確認(存在する)
  2. /usr/local/bin/docker-php-entrypointの実行(エラーとなる /bin/sh: 5: /usr/local/bin/docker-php-entrypoint: not found)
  3. composerの実行(コマンド一覧が表示される)
  4. bin/consoleの実行(エラーとなる /usr/bin/env: 'php\r': No such file or directory)

環境(Environment)

EC-CUBE 4.3ブランチ、4.2ブランチの二つを試した dockerはWindowsで実行(Windows10, 11共現象を確認)

Meganezaru avatar Mar 30 '24 07:03 Meganezaru

引き続き調査したところ、shebang行にWindows改行が利用されていると認識できないようです

Windowsでbuildする場合、コンテナ内にCOPYするコマンド系のスクリプトは、改行を変換する必要があるようです https://willi.am/blog/2016/08/11/docker-for-windows-dealing-with-windows-line-endings/

Meganezaru avatar Mar 30 '24 08:03 Meganezaru

作法をあまり理解できていないですので、何か問題があればご指摘いただければありがたいです https://github.com/EC-CUBE/ec-cube/pull/6127

Meganezaru avatar Mar 30 '24 11:03 Meganezaru

@Meganezaru Window 環境では WSL2 のご利用を強くおすすめします。 PHPとDockerとNTFSの相性が強烈に悪いことと、積極的に利用するユーザーが少ないため、あまり保守されていません。 WSL2 を利用できない要件などありましたらご教授ください🙇‍♂️

nanasess avatar Mar 30 '24 11:03 nanasess

@nanasess しいて言えばDocker desktopを利用したいという事がありますが、できない要件は特にないと思いますので、WSL2での開発を考えてみます。アドバイスありがとうございます。

Meganezaru avatar Mar 30 '24 11:03 Meganezaru

@Meganezaru WSL2経由でも Docker Desktop を利用可能ですので、こちらもご検討ください🙇‍♂️ https://docs.docker.jp/desktop/windows/wsl.html

nanasess avatar Mar 30 '24 14:03 nanasess

@nanasess いろいろ情報ありがとうございます。助かります🙇‍♂️

現象として致命的に感じるものが処置されていないことに、とても違和感があったのですが、 常識的にWSL2上で作業することが分かり納得しました。

Docker Desktopと同じようにVSCodeなども同じような利用方法がきっと有るんでしょうね。 いままでWindowsを開発環境として使ってこなかったので、勉強になります、ありがとうございました。

私と同じように改行周りで問題が出るというセンスがない人は、同じようなハマり方をしてコンテナ利用を断念する人がいるように感じます。何か示唆できるとよいかもしれません。

Meganezaru avatar Mar 31 '24 00:03 Meganezaru

PRに続き、こちらもクローズさせて頂きます。

dotani1111 avatar Jun 24 '24 05:06 dotani1111