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
This commit is contained in:
51
.gitignore
vendored
Normal file
51
.gitignore
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
# These are some examples of commonly ignored file patterns.
|
||||
# You should customize this list as applicable to your project.
|
||||
# Learn more about .gitignore:
|
||||
# https://www.atlassian.com/git/tutorials/saving-changes/gitignore
|
||||
|
||||
# Node artifact files
|
||||
node_modules/
|
||||
dist/
|
||||
|
||||
# Compiled Java class files
|
||||
*.class
|
||||
|
||||
# Compiled Python bytecode
|
||||
*.py[cod]
|
||||
|
||||
# Log files
|
||||
*.log
|
||||
|
||||
# Package files
|
||||
*.jar
|
||||
|
||||
# Maven
|
||||
target/
|
||||
dist/
|
||||
|
||||
# JetBrains IDE
|
||||
.idea/
|
||||
|
||||
# Unit test reports
|
||||
TEST*.xml
|
||||
|
||||
# Generated by MacOS
|
||||
.DS_Store
|
||||
|
||||
# Generated by Windows
|
||||
Thumbs.db
|
||||
|
||||
# Applications
|
||||
*.app
|
||||
*.exe
|
||||
*.war
|
||||
|
||||
# Large media files
|
||||
*.mp4
|
||||
*.tiff
|
||||
*.avi
|
||||
*.flv
|
||||
*.mov
|
||||
*.wmv
|
||||
*.iso
|
||||
|
||||
109
README.md
Normal file
109
README.md
Normal file
@@ -0,0 +1,109 @@
|
||||
|
||||
18 :e open a new file in new buffer
|
||||
19 :b <tab> roll between opened files
|
||||
20 :b <word><tab> auto complete <word> 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 <word>C-d auto complete <word> with a mathing name of files in current directory
|
||||
30 :explore / :ex<tab> 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
|
||||
|
||||
- [how to install docker engine](https://docs.docker.com/engine/install/ubuntu/)
|
||||
- [download alpine linux](https://alpinelinux.org/downloads/)
|
||||
- [dockerhub alpine image](https://hub.docker.com/_/alpine)
|
||||
- [docker glossaire](https://docs.docker.com/glossary/)
|
||||
- [syntax of Dockerfile](https://docs.docker.com/engine/reference/builder/)
|
||||
- [determine the parent image](https://forums.docker.com/t/determine-the-parent-image/48611)
|
||||
- [docker image from scratch](https://codeburst.io/docker-from-scratch-2a84552470c8)
|
||||
|
||||
#### volumes vs bind mounts
|
||||
|
||||
* [docker doc: use volumes](https://docs.docker.com/storage/volumes/)
|
||||
* [docker doc: use bind mounts](https://docs.docker.com/storage/bind-mounts/)
|
||||
* [comparison volume vs bind mounts](https://devopscook.com/docker-volumes-vs-bind-mounts/)
|
||||
* [fundamentals use of volumes and bind mounts](https://medium.com/dlt-labs-publication/bind-mounts-volumes-in-docker-81523303cbb4)
|
||||
* [how volumes and bind mounts are really differents](https://serverfault.com/questions/996785/docker-volumes-vs-mount-binds-what-are-the-use-cases)
|
||||
- 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](https://docs.docker.com/engine/install/linux-postinstall/)
|
||||
|
||||
BIN
docs/inception_en.subject.pdf
Normal file
BIN
docs/inception_en.subject.pdf
Normal file
Binary file not shown.
BIN
docs/inception_fr.subject.pdf
Normal file
BIN
docs/inception_fr.subject.pdf
Normal file
Binary file not shown.
8
srcs/.env
Normal file
8
srcs/.env
Normal file
@@ -0,0 +1,8 @@
|
||||
DOMAIN_NAME=wil.42.fr
|
||||
# certificates
|
||||
CERTS_=./XXXXXXXXXXXX
|
||||
# MYSQL SETUP
|
||||
MYSQL_ROOT_PASSWORD=XXXXXXXXXXXX
|
||||
MYSQL_USER=XXXXXXXXXXXX
|
||||
MYSQL_PASSWORD=XXXXXXXXXXXX
|
||||
[...]
|
||||
0
srcs/docker-compose.yml
Normal file
0
srcs/docker-compose.yml
Normal file
0
srcs/requirements/mariadb/.dockerignore
Normal file
0
srcs/requirements/mariadb/.dockerignore
Normal file
10
srcs/requirements/mariadb/Dockerfile
Normal file
10
srcs/requirements/mariadb/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
# build this image from parent image alpine:3.16.1
|
||||
# available there : https://hub.docker.com/_/alpine
|
||||
FROM alpine:3.16.1
|
||||
WORKDIR /mariadb
|
||||
#ENV PORT 80
|
||||
|
||||
|
||||
|
||||
|
||||
0
srcs/requirements/nginx/.dockerignore
Normal file
0
srcs/requirements/nginx/.dockerignore
Normal file
0
srcs/requirements/nginx/Dockerfile
Normal file
0
srcs/requirements/nginx/Dockerfile
Normal file
Reference in New Issue
Block a user