Самое простое решение - добавить одну зависимость для pdftk, которая не найдена на heroku.
$ldd pdftk
linux-vdso.so.1 => (0x00007ffff43ca000)
libgcj.so.10 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f1d26d48000)
libm.so.6 => /lib/libm.so.6 (0x00007f1d26ac4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f1d268ad000)
libc.so.6 => /lib/libc.so.6 (0x00007f1d2652a000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f1d2630c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1d27064000)
Я поместил pdftk и libgcj.so.10 в каталог / bin моего приложения.Затем вам просто нужно сказать героку, чтобы он смотрел каталог / bin при загрузке библиотек.
Вы можете набрать
$heroku config
LD_LIBRARY_PATH: /app/.heroku/vendor/lib
LIBRARY_PATH: /app/.heroku/vendor/lib
, чтобы увидеть, на что настроен ваш текущий LD_LIBRARY_PATH, а затем добавить / app / bin (или любой другой каталог, который вы выбрали для хранения libgcj.so.10)..
$heroku config:set LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/bin
Недостатком является то, что размер моего слизняка увеличился с 15,9 МБ до 27,5 МБ