Ubuntu22でEC-CUBE4.0の開発 with Docker
Ubuntuだとwww-dataユーザーじゃないとファイルに書き込みできなくて開発がはかどらないですね…(※補足5)
Dockerfileを以下のように雑に手を付けて自分権限で動作するようにしました。
どうせ開発環境だからこれでいいでしょ…。
Dockerfile
RUN echo 'tarou:x:1000:1000:tarou urashima,,,:/home/tarou:/bin/bash' >> /etc/passwd
RUN echo 'tarou:x:1000:' >> /etc/group
RUN mkdir /home/tarou && chown tarou:tarou /home/tarou
RUN mkdir -p ${APACHE_DOCUMENT_ROOT} \
&& sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf \
&& sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf \
&& sed -ri -e 's/www-data/tarou/g' /etc/apache2/envvars \
;
付け足したのは1, 2, 3, 8行目です。
蛇足
コマンドラインでノンインタラクティブにユーザー追加どうやるんだろ?
adduserとかuseraddコマンドにオプションあるんかな?
↓
なさそう。昔(1991年にHI-UX/WE2担当していた時)やったみたいに直書きで行けるんじゃないのかな?
↓
できたw
蛇足2
ちなみにMacだとこういうことをしなくても、自分権限で動いているのでなんだかよくわからないです。
蛇足3
EC-CUBEの開発(本体じゃなくてカスタマイズか…)のベストプラクティスが知りたいですね…。
Github上で本家をforkして自分のリポジトリからGitlabへforkさせてプライベートにはしたけど。
補足4
もしかしてWindows XAMPだったら権限もなにもないので、
いともたやすく行われるえげつない開発(D5)ができたんじゃないかなって突然思ったけど検証環境がないから思うだけ。
補足5
Rootless dockerというものをその後知ることになり…。