LoginSignup
1
0

More than 1 year has passed since last update.

Laradockでimagickを使えるようにする

Posted at

はじめに

Laradockの標準のDockerfileだと上手く動かなかったので勉強がてらDockerfileをいじってみました。

詰まった原因

エラー
attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/410

どうやら設定ファイルを書き換える必要があるらしい。設定ファイルの場所はDockerコンテナの中の/etc/ImageMagick-6/policy.xml。コンテナを起動するたびにvimなどで書き換えるのは面倒なのでDockerfileにあらかじめ処理を書いておくことにしました。

解決方法

使っているコンテナのDockerfile(自分の場合はphp-fpmworkspace)を下記のように編集してください。

Dockerfile
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
  apt-get update && \
  # ↑ここを追加
  apt-get install -y libmagickwand-dev imagemagick && \
  sed -i -e 's/domain="coder" rights="none"/domain="coder" rights="write|read"/g' /etc/ImageMagick-6/policy.xml && \
  # ↑ここを追加
  ~ 以下略

使いたいコンテナの.envも編集します。

.env
### WORKSPACE #############################################
~
PHP_FPM_INSTALL_IMAGEMAGICK=true
~
### PHP_FPM ###############################################
~
WORKSPACE_INSTALL_IMAGEMAGICK=true

Dockerをリビルド

docker-compose up --build -d nginx mysql redis

解説

apt-get update パッケージ一覧の更新
sed -i -e ~ 設定ファイルの書き換え。PDFの読み込み、書き込みを許可しています。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0