为什么我的flask应用程序的Docker图像不保存在文件夹中的文件



我制作了一个flask应用程序,将语音从一种语言翻译成另一种语言,为此,我必须将翻译后的音频文件存储在文件夹中;然后使用HTML中的音频播放器播放音频(在前端)。本地一切正常,但docker图像或heroku应用程序不播放任何音频,因为它没有在文件夹中存储任何音频文件。不知道为什么它不保存音频文件的请求。如何解决这个问题。关于我的项目的更多信息;Heroku应用

下面是我编写的后端保存部分的代码块

translated_text = translator(transcript, target)
target = languages[target].lower()
try:
speak = gTTS(text=translated_text, lang=target, slow=False)
except:
return render_template("error.html", message = "Sorry, I didn't understand that. Please try again.")
#? Using save() method to save the translated
global i
i += 1

#? speech in capture_voice.mp3
speak.save(fr"statictranslated_speechcaptured_voice{i}.mp3")
return render_template('translator2.html', translated_text=translated_text, path = fr"statictranslated_speechcaptured_voice{i}.mp3")

代码块用于播放translator2.html中由该函数渲染的音频

<div class="play-sound">
<audio controls="controls">
<source src="{{path}}" type="audio/mpeg">
</audio>
</div>

本地文件结构

- static
- css, favicon etc
- translated_speech
- templates
- app.py

DockerFile

FROM python:3.9.12
WORKDIR /app/
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

Docker镜像制作命令

docker build -t app:v1 .
docker run -p 5000:5000 app:v1

如何解决这个问题?谢谢你。

应该将主机的目录挂载到容器上。移除容器后,所有文件也将可用。在这里,它将当前目录挂载到容器中的/app:

docker run -v $(pwd):/app -p 5000:5000 app:v1

相关内容

  • 没有找到相关文章

最新更新