web-dev-qa-db-ja.com

Dockerイメージhttpd:alpineにmod_rewriteを追加します

正直なところ、私はAlpine Linuxについてほとんど経験がありませんが、私はそのアプローチが好きなので、それを変えたいと思っています。私はDockerも比較的新しいので、これが「愚かな」質問である場合はご容赦ください。

私が達成したいのは、httpd:Alpine画像と私のニーズにHTTPdを拡張します。

これには、mod_rewriteモジュールをアクティブ化し、カスタム.htaccessをイメージにコピーすることが含まれます。

ここに私がこれまでに持っているものがあります:

FROM httpd:Alpine

# Copy .htaccess into DocumentRoot
COPY ./.htaccess /var/www/html/

RUN apk update
RUN apk upgrade
RUN apk add Apache2-utils
RUN a2enmod rewrite
RUN rc-service Apache2 restart

私の問題は、解決策がわからない「a2enmod not found」エラーが常に表示されることです。これは、a2enmodが純粋なDebian/Ubuntu/...であることが原因である可能性がありますが、mod_rewrite(またはそのためのモジュール)をアクティブにする別の方法がわかりません。

よろしくお願いします!

5
Archivar

mod_rewriteは、Apacheとともにデフォルトでアルパインにインストールされるため、再度インストールする必要はありません。したがって、アルパインでmod_rewriteを有効にする方法は次のとおりです。

FROM httpd:Alpine

# Copy .htaccess into DocumentRoot
COPY ./.htaccess /var/www/html/

RUN sed -i '/LoadModule rewrite_module/s/^#//g' /usr/local/Apache2/conf/httpd.conf

RUN { \
  echo 'IncludeOptional conf.d/*.conf'; \
} >> /usr/local/Apache2/conf/httpd.conf \
  && mkdir /usr/local/Apache2/conf.d
4