FROM python:3.10
RUN apt-get update && apt-get install -y inkscape
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "--workers", "8", "--bind", "0.0.0.0:8484", "wsgi:app"]
上記は私のドッカーファイルです。
以下は私のコードです
image_name = re.sub(r'[^\w\s-]', '', title)
svgchart = chart_pygal.render()
inkscape_process = subprocess.Popen(['inkscape', '-z', '-e', '-', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
png_data, error = inkscape_process.communicate(input=svgchart)
png_io = BytesIO(png_data)
return send_file(png_io ,mimetype='image/png', download_name=image_name+'.png', as_attachment=True)
svgをpngに変換していますが、私のコンピュータでは正常に動作しますが、dockerコンテナでは動作しません。次のエラーが発生します。申し訳ありません。フォーマットがサポートされていないか、ファイルがすでにダウンロードされており、ダウンロードした画像サイズが0 kbであるため、写真でこのファイルを開くことはできません。