2017-09-25 3 views
0

docker 환경에서 wkhtmltopdf를 실행하려고하면 아래 오류가 표시됩니다.docker 환경에서 wkhtmltopdf의 프로세스 오류

subprocess.CalledProcessError: Command '['wkhtmltopdf', '--encoding', 'utf8', '--margin-top', '10', '--quiet', '/tmp/wkhtmltopdf85qv7fvc.html', '-']' died with <Signals.SIGABRT: 6>.

코드는 아래에 볼 수 있습니다.

우분투 16.04의 방랑 기계에서 작동합니다. 그러나, 그것을 도커 환경으로 옮기면 위의 오류로 실패합니다. 처음에는 Python3.6 이미지를 사용한 다음 우분투 16.04 이미지로 변경하여 wkhtmltopdf가 완전한 리눅스 환경을 필요로한다고 생각했습니다. 그러나 여전히 운이 없다.

from django.http import HttpRequest 
from wkhtmltopdf.views import PDFTemplateResponse 

def generate_invoice_pdf(download_pdf=False, **kwargs): 
    """ 
    Render html to PDF 
    """ 
    file_name = kwargs['file_name'] 
    template = kwargs['template'] 

    context = { 
     "first_Name": "John", 
     "last_name": "Doe" 
    } 

    # Create request object 
    request = HttpRequest() 

    params = { 
     'request': request, 
     'template': template, 
     'filename': os.path.basename(file_name), 
     'context': context, 
     'cmd_options': {'margin-top': 10, }, 
     'show_content_in_browser': True 
    } 

    response = PDFTemplateResponse(**params) 

    # write the rendered content to a file 
    with open(file_name, "wb") as f: 
     f.write(response.rendered_content) # Part throwing the error 

    if download_pdf: 
     return response 
    else: 
     msg = 'PDF Generated: {}'.format(file_name) 
     return msg 
+0

'SIGABRT'는 모두 충돌하는 것을 나타냅니다. 컨테이너 내부로 가서 명령을 수동으로 실행하고 어떤 결과가 나오는지 확인하십시오. –

+0

wkhtml이 올바르게 설치되어 있습니다. root # wkhtmltopdf -V는'wkhtmltopdf 0.12.2.4'를 제공합니다. 예 : 예 : Google 페이지를 콘솔 내에서 PDF로 보냅니다. 콘솔에서'generate_invoice_pdf' 명령을 실행할 때 같은 오류가 발생합니다. – lukik

답변

2

문제는 wkhtmltopdfDISPLAY/X 서버를 필요로한다는 것이다.

openlabs/docker-wkhtmltopdf을 기본 이미지로 사용하면 문제를 해결할 수 있습니다.

+0

해당 링크의 Docker 파일에서 Docker 파일을 수정하여 'build-essential xorg libssl-dev libxrender-dev wget gdebi'를 가질 수 있다고 생각합니다. 그것은 나를 덮어야한다. 나를 보자. – lukik

+1

당신이 내 질문에 관심이있을 수 있습니다 [어떻게 도커와 함께 wkhtmltopdf 사용] (https://stackoverflow.com/q/46399914/562769) 어디에 명시 적으로 질문에서 해당 이미지를 제외했습니다. –

+0

그리고 아마도 [어떻게 우분투 16.04에 최신 wkhtmltopdf를 설치할 수 있습니까?] (https://askubuntu.com/q/959152/10425) –

관련 문제