首页 > 解决方案 > Heroku buildpack:更新系统文件

问题描述

我需要更新位于 Heroku slug 中 /etc/ImageMagick-6/policy.xml 的 policy.xml 文件。我已经构建了一个自定义构建包来完成此任务,但由于 Heroku 的只读文件系统,我无法更新该文件。如何使用 buildpack 更新预装的系统设置?

这是我在部署过程中遇到的错误:

/tmp/codon/tmp/buildpacks/4b454e26b09e534bedfb4016207d14a65ef40579/bin/compile: line 33: /etc/ImageMagick-6/policy.xml: Read-only file system

这是 buildpack 中的编译脚本:

#!/bin/bash

indent() {
  sed -u 's/^/       /'
}

echo "-----> Updating ImageMagick 6 Policy"

BUILD_DIR=$1

read -r -d '' IM6POLICY <<'EOF'
<policymap>
  <policy domain="resource" name="memory" value="2GiB"/>
  <policy domain="resource" name="map" value="1GiB"/>
  <policy domain="resource" name="width" value="20KP"/>
  <policy domain="resource" name="height" value="20KP"/>
  <policy domain="resource" name="area" value="256MB"/>
  <policy domain="resource" name="disk" value="1GiB"/>
  <policy domain="resource" name="thread" value="4"/>
  <policy domain="resource" name="throttle" value="0"/>
  <policy domain="delegate" rights="none" pattern="URL" />
  <policy domain="delegate" rights="none" pattern="HTTPS" />
  <policy domain="delegate" rights="none" pattern="HTTP" />
  <policy domain="path" rights="none" pattern="@*"/>
  <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/>
</policymap>
EOF

if [ ! -d /etc/ImageMagick-6 ]; then
    mkdir -p /etc/ImageMagick-6
fi

echo "$IM6POLICY" > /etc/ImageMagick-6/policy.xml

标签: herokuimagemagickbuildpack

解决方案


推荐阅读