【发布时间】:2020-08-21 08:53:36
【问题描述】:
我正在尝试使用 Flask 和 Docker 开发一个小型音乐应用程序。我的 compose 中有两个 docker 服务,都运行 Flask。
第一个叫做uploader:
@app.route("/get_song/<string:filename>/", methods=["GET"])
def get_song(filename):
path = os.path.join(flask.current_app.instance_path, flask.current_app.config["UPLOAD_FOLDER"])
return flask.send_from_directory(path, filename, as_attachment=True)
第二个渲染一个 Jinja 模板,它试图播放这个 API 返回的文件:
<audio controls="controls" autoplay="autoplay"></audio>
<a href="javascript:void(0);" onclick="playSong('{{song}}')">{{song}}</a>`
<script type="text/javascript">
function playSong(song){
$('audio').attr('src', 'http://uploader:5000/get_song/'+song);
}
</script>
另外,这些组件工作得很好。但是当一起使用时,文件不播放。我已经尝试了几乎所有我在网上找到的东西,但似乎没有任何效果。任何帮助将不胜感激。谢谢!
编辑:添加了 docker-compose 文件。两个 docker 镜像都是在本地构建的。
version: "3"
services:
uploader:
image: project_uploader:latest
ports:
- "4000:5000"
networks:
- upload
frontend_server:
image: project_frontend_server:latest
ports:
- "5000:5000"
networks:
- upload
networks:
upload:
【问题讨论】:
-
如何启动docker容器?
-
@Stefano 我使用
docker-compose up启动它们。我已经用我的撰写文件更新了问题。
标签: javascript html docker flask jinja2