window7 docker-compose 坑爹的官方入门例子
首先说一下坑吧:
官网例子在这里:https://docs.docker.com/compose/gettingstarted/,随便百度搜索一下docker-compose入门教程,很多以这个例子写的博客,这里先说明一下,如果那些博客的博主使用的是mac或者linux,应该可以成功,我暂时没有测试,但是如果使用windows7(为什么我的是win7。。。整个公司都是win7。。。)一定会报错,windows10不知道会不会有这个问题,因为windows10不用安装virtualbox,直接使用Hyper-V做虚拟化,可能不会有问题。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。问题:
在官方例子Dockfile如下:
运行的时候会报:
Python: can’t open file ‘app.py’: [Errno 2] No such file or directory
官方的docker-compose.yml文件如下(这个是带有挂载的实例):
这里就是问题所在了,这个挂载是不会成功的,原因就是virtualbox和windows本身有共享文件夹,如果没有在共享文件夹中挂载是不会生效的
解决办法:
1.进入Docker Quickstart Terminal,输入docker-machine ssh default
2.sudo su
3.cd /
4.ls(可以看到有个c,这个就是默认的共享文件夹,也可以通过另一个中方式看到,在virtualbox设置中也可以看到)
5.把整个compose_test直接移动到本地的c:/Users下面,然后把docker-compose.yml和Dockerfile如下:
Dockerfile:
FROM python:3.6-alpine WORKDIR /c/Users/compose_test RUN pip install -r requirements.txt CMD ["python", "app.py"]
docker-compose.yml
version: '3' services: web: build: . ports: - "5000:5000"
其他的不变,这里我也贴一下吧:
requirements.txt
flask
app.py
from flask import Flask app = Flask(__name__) @app.route('/') def index(): print('success!!!') return 'hello' if __name__ == '__main__': app.run(host="0.0.0.0",threaded = True)
这样就可以正常启动的:docker-compose up了,搞了一下午,网上没有发现什么好的解决方案,我这里也是摸索了好久,找到的一个方法
--------------------------------------------------------------滑溜溜的马甲线-----------------------------------------------------
最近狗东问题不断,然后东哥一直喊着改革,岂不知自己就是最大的问题,这就像我dang,一直喊着改革,其实自己才是源头,没有人会愿意革自己的命的,所以,改来改去,还是问题不断
