Files
42_INT_13_inception/README.md
hugogogo 90680662fc initial commit
+ creating the architecture
+ some doc about volumes and bind mounts
+ added rule for iso in gitignore
+ understood a little more about dockerfile environment
2022-08-27 15:15:32 +02:00

3.7 KiB

18 :e open a new file in new buffer 19 :b roll between opened files 20 :b auto complete with names of oppened buffers 21 :set hidden add that to be able to cancel changes 22 :ls list buffer oppened 23 :x bw delete buffer number x, even if it's a directory 24 :bd delete buffer actual buffer 25 :bp go to previous buffer 26 :bn go to next buffer 27 :b# switch to last edited buffer 28 :e C-d print the list of files in current directory 29 :e C-d auto complete with a mathing name of files in current directory 30 :explore / :ex navigate through directory, rename, and plus

inception

This README would normally document whatever steps are necessary to get your application up and running.


questions

  • ? what means mounted in "a file or directory on the host machine is mounted into a container" ?
  • ? why the volumes cannot be modify outside docker ?

Dockerfile basics

  • the container posess its own filesystem
  • we need to copy the files it uses inside this filesystem
  • we can do that with COPY

working

FROM scratch
WORKDIR /
COPY hello /
CMD [ "/hello" ]

working, when WORKDIR is absent, it's default is set to "/"

FROM scratch
COPY hello /
CMD [ "/hello" ]

not working, when CMD execute in shell form, instead of exec form []

FROM scratch
COPY hello /
CMD /hello

not working, because c executable need library <unistd.h>

FROM scratch
COPY hello_c /
CMD [ "/hello_c" ]

not working, when executable is copied to ".", because WORKDIR value is not "." but "/" since we gave it a relativ path so it was build in top of the implicit absolut path "/"

FROM scratch
WORKDIR .
COPY hello .
CMD [ "hello" ]

not working, when WORKDIR is set to the present directory and executable is not copied, because the workdir is not the present directory but a directory in the file system of docker : executable need to be copied there to function

FROM scratch
WORKDIR /home/simplonco/Desktop/42/14_inception/inception/srcs/requirements/mariadb
CMD [ "hello" ]

working, because "hello" is copied to "/" and execute from "/"

FROM scratch
WORKDIR .
COPY hello /
CMD [ "/hello" ]

ressources

volumes vs bind mounts

  • bind mounts are normal files anywhere on the computer, that docker container can access with absolut path and modify. They can also be modified without docker, since they are juste files
  • volumes are only modifiable by docker, they don't need an absolut path, and they are not dependent of host architecture

tips

run without sudo on linux