Bitnami rails docker 容器:wkhtmltopdf:55:in `initialize':权限被拒绝@ rb_sysopen -
Bitnami rails docker container: wkhtmltopdf:55:in `initialize': Permission denied @ rb_sysopen -
我正在尝试使用 bitnamis 官方 rails 图像将现有应用程序转换为 docker。我正在使用 wkhtmltopdf
生成 PDF。它在 docker 容器中工作,但在 docker 容器中我收到此错误。
Failed to execute:
["/opt/bitnami/ruby/bin/wkhtmltopdf", "--encoding", "UTF-8", "--zoom", "2", "--dpi", "1000", "--page-width", "12in", "--page-height", "7.6in", "file:////tmp/wicked_pdf20210523-1-1tprbwc.html", "/tmp/wicked_pdf_generated_file20210523-1-ket44c.pdf"]
Error: PDF could not be generated!
Command Error: /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf:55:in `initialize': Permission denied @ rb_sysopen - /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf_debian_10_amd64 (Errno::EACCES)
from /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf:55:in `open'
from /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf:55:in `<top (required)>'
from /opt/bitnami/ruby/bin/wkhtmltopdf:23:in `load'
from /opt/bitnami/ruby/bin/wkhtmltopdf:23:in `<main>'
docker compose yml 文件是
version: '2'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.3
environment:
- ALLOW_EMPTY_PASSWORD=yes
myapp:
tty: true # Enables debugging capabilities when attached to this container.
image: docker.io/bitnami/rails:6
environment:
- DATABASE_HOST=mariadb
- DATABASE_NAME=my_app_development
depends_on:
- mariadb
ports:
- 3000:3000
volumes:
- .:/app
官方docker图片的link是:https://hub.docker.com/r/bitnami/rails/
完成一些研究后发现我们需要使用 chown
更改权限,但无法使其工作。
我已经创建了 Dockerfile
并自定义了图像并且成功了。目前唯一的问题是我每次构建时都需要设置权限。
Dockerfile
FROM docker.io/bitnami/rails:6
RUN sudo apt update
RUN sudo apt install wget xfonts-75dpi -y
RUN cd
RUN sudo apt -y install wget
RUN wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
RUN sudo apt install ./wkhtmltox_0.12.6-1.buster_amd64.deb -y
#RUN sudo chown -R bitnami:bitnami /opt/bitnami/ruby/lib/ruby/gems/
ENV RAILS_ENV="production"
docker-compose.yml
version: '2'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.3
environment:
- MARIADB_ROOT_PASSWORD=my-secret-pw
myapp:
tty: true # Enables debugging capabilities when attached to this container.
#image: docker.io/bitnami/rails:6
build:
context: .
dockerfile: Dockerfile
environment:
- DATABASE_HOST=mariadb
- DATABASE_NAME=my_app_prod
- MARIADB_ROOT_PASSWORD=my-secret-pw
- RAILSENV=production
depends_on:
- mariadb
ports:
- 3000:3000
volumes:
- .:/app
它可以工作,但是在我构建之后我需要执行
docker-compose exec myapp sudo chown -R bitnami:bitnami /opt/bitnami/ruby/lib/ruby/gems/
我正在尝试使用 bitnamis 官方 rails 图像将现有应用程序转换为 docker。我正在使用 wkhtmltopdf
生成 PDF。它在 docker 容器中工作,但在 docker 容器中我收到此错误。
Failed to execute:
["/opt/bitnami/ruby/bin/wkhtmltopdf", "--encoding", "UTF-8", "--zoom", "2", "--dpi", "1000", "--page-width", "12in", "--page-height", "7.6in", "file:////tmp/wicked_pdf20210523-1-1tprbwc.html", "/tmp/wicked_pdf_generated_file20210523-1-ket44c.pdf"]
Error: PDF could not be generated!
Command Error: /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf:55:in `initialize': Permission denied @ rb_sysopen - /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf_debian_10_amd64 (Errno::EACCES)
from /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf:55:in `open'
from /opt/bitnami/ruby/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.6.5/bin/wkhtmltopdf:55:in `<top (required)>'
from /opt/bitnami/ruby/bin/wkhtmltopdf:23:in `load'
from /opt/bitnami/ruby/bin/wkhtmltopdf:23:in `<main>'
docker compose yml 文件是
version: '2'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.3
environment:
- ALLOW_EMPTY_PASSWORD=yes
myapp:
tty: true # Enables debugging capabilities when attached to this container.
image: docker.io/bitnami/rails:6
environment:
- DATABASE_HOST=mariadb
- DATABASE_NAME=my_app_development
depends_on:
- mariadb
ports:
- 3000:3000
volumes:
- .:/app
官方docker图片的link是:https://hub.docker.com/r/bitnami/rails/
完成一些研究后发现我们需要使用 chown
更改权限,但无法使其工作。
我已经创建了 Dockerfile
并自定义了图像并且成功了。目前唯一的问题是我每次构建时都需要设置权限。
Dockerfile
FROM docker.io/bitnami/rails:6
RUN sudo apt update
RUN sudo apt install wget xfonts-75dpi -y
RUN cd
RUN sudo apt -y install wget
RUN wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
RUN sudo apt install ./wkhtmltox_0.12.6-1.buster_amd64.deb -y
#RUN sudo chown -R bitnami:bitnami /opt/bitnami/ruby/lib/ruby/gems/
ENV RAILS_ENV="production"
docker-compose.yml
version: '2'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.3
environment:
- MARIADB_ROOT_PASSWORD=my-secret-pw
myapp:
tty: true # Enables debugging capabilities when attached to this container.
#image: docker.io/bitnami/rails:6
build:
context: .
dockerfile: Dockerfile
environment:
- DATABASE_HOST=mariadb
- DATABASE_NAME=my_app_prod
- MARIADB_ROOT_PASSWORD=my-secret-pw
- RAILSENV=production
depends_on:
- mariadb
ports:
- 3000:3000
volumes:
- .:/app
它可以工作,但是在我构建之后我需要执行
docker-compose exec myapp sudo chown -R bitnami:bitnami /opt/bitnami/ruby/lib/ruby/gems/