【发布时间】:2021-08-08 16:44:57
【问题描述】:
我正在尝试在同一个 docker 容器中运行一个 go web 服务器和一个烧瓶服务器。我有 1 个 Docker 文件来构建烧瓶应用程序。如何更新 Dockerfile 来构建一个同时运行 python 和 golang 的容器。
项目文件夹
- py文件夹 /app.py, Dockerfile
- main.go
main.go
package main
import (
"fmt"
"log"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("func called")
}
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
app.py
from flask import Flask
import os
app = Flask(__name__)
@app.route("/")
def hello():
return "Flask inside Docker!!"
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(debug=True,host='0.0.0.0',port=port)
Dockerfile
FROM python:3.6
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python"]
CMD ["app.py"]
【问题讨论】:
-
需要在python镜像中安装golang或者在golang镜像中安装python。也就是说,它是一个很大的反模式。考虑在各自的容器中运行每一个。
标签: python docker go dockerfile