What is happening when using ../ with docker-compose volume

前端 未结 2 856
天命终不由人
天命终不由人 2021-02-08 01:51

I am having problems with writing files out from inside a docker container to my host computer. I believe this is a privilege issue and prefer not to set privileged: True<

2条回答
  •  死守一世寂寞
    2021-02-08 02:28

    The docker build command can only access the directory it is in and lower, not higher, unless you specify the higher directory as the context.

    To run the docker build from the parent directory:

    docker build -f /home/me myapp/Dockerfile 
    

    Doing the same in composer:

     #docker-compose.yml
     version: '3.3'    
     services:
       yourservice:
         build:
           context: /home/me
           dockerfile: myapp/Dockerfile
    

    Or with your example:

     version: '3'
     services:
         build: 
            context: /home/me/app
            dockerfile: docker/Dockerfile
         example:
            volumes:
              - /home/me/app:/example
    

    Additionally you have to supply full paths, not relative paths. Ie.

    - /home/me/myapp/files/example:/example 
    

    If you have a script that is generating the Dockerfile from an unknown path, you can use:

    CWD=`pwd`; echo $CWD
    

    To refer to the current working directory. From there you can append ..

    Alternately you can build the image from a directory one up, or use a volume which you can share with an image that is run from a higher directory, or you need to output your file to stdout and redirect the output of the command to the file you need from the script that runs it.

    See also: Docker: adding a file from a parent directory

提交回复
热议问题