2024年5月20日月曜日

FROM php:7.4-apache(apacheのuser&groupの変更方法)

訳あって、FROM php:7.4-apacheでの実行ユーザーとグループの変更が必要になってので
以下の記載により再現させてみることに。


1)start-apache.shを作成

#!/bin/bash
# Apacheをapacheユーザーとして起動

# ログファイルの所有権を変更
chown apache:apache /var/log/apache2 /var/log/apache2/*

# Apacheをapacheユーザーとして起動
exec gosu apache /usr/sbin/apache2ctl -D FOREGROUND


2)dockerfileの作成を行う

FROM php:7.4-apache


# 新しいユーザー(test)とグループ(apache)を作成
RUN groupadd -r apache
RUN useradd -r -g apache test

# Apacheの環境変数のファイルを更新する(ユーザーとグループを変更)
RUN sed -i 's/APACHE_RUN_USER:=www-data/APACHE_RUN_USER:=test/g' /etc/apache2/envvars
RUN sed -i 's/APACHE_RUN_GROUP:=www-data/APACHE_RUN_GROUP:=apache/g' /etc/apache2/envvars

# apache log(所有者変更)
RUN chown test:apache -R /var/log/apache2
RUN chown test:apache -R /var/www/html
RUN chown test:apache -R /run/lock/apache2
RUN chown test:apache -R /run/apache2
RUN chown test:apache -R /var/cache/apache2/mod_cache_disk


# gosuのインストールに必要なパッケージのインストール
RUN apt-get update && apt-get install -y \  
wget \  
gnupg2 \  
dirmngr \  
&& rm -rf /var/lib/apt/lists/*

# gosuのインストール
RUN set -eux; \  
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.12/gosu-amd64"; \
wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.12/gosu-amd64.asc"; \
export GNUPGHOME="$(mktemp -d)"; \  
gpg --keyserver keyserver.ubuntu.com --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \  
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \  
rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \  
chmod +x /usr/local/bin/gosu; \  
gosu --version; \  
apt-get purge -y --auto-remove wget gnupg2 dirmngr

# スクリプトをコピーして実行権限を付与
COPY start-apache.sh /usr/local/bin/start-apache.sh
RUN chmod +x /usr/local/bin/start-apache.sh

CMD ["start-apache.sh"]

0 件のコメント:

コメントを投稿

php log(ECS ログ出力)

# PHPエラーログの設定 ENV PHP_INI_DIR /usr/local/etc/php RUN { \ echo 'log_errors = On' ; \ echo 'error_log = /proc/self/...