首先说一下坑吧:

官网例子在这里:https://docs.docker.com/compose/gettingstarted/,随便百度搜索一下docker-compose入门教程,很多以这个例子写的博客,这里先说明一下,如果那些博客的博主使用的是mac或者linux,应该可以成功,我暂时没有测试,但是如果使用windows7(为什么我的是win7。。。整个公司都是win7。。。)一定会报错,windows10不知道会不会有这个问题,因为windows10不用安装virtualbox,直接使用Hyper-V做虚拟化,可能不会有问题。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

问题:

在官方例子Dockfile如下:

  window7 docker-compose 坑爹的官方入门例子 随笔 第1张

运行的时候会报:

  Python: can’t open file ‘app.py’: [Errno 2] No such file or directory

官方的docker-compose.yml文件如下(这个是带有挂载的实例):

  window7 docker-compose 坑爹的官方入门例子 随笔 第2张

这里就是问题所在了,这个挂载是不会成功的,原因就是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,一直喊着改革,其实自己才是源头,没有人会愿意革自己的命的,所以,改来改去,还是问题不断

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄