-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstudent.sh
More file actions
executable file
·48 lines (38 loc) · 2.01 KB
/
student.sh
File metadata and controls
executable file
·48 lines (38 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#! /bin/bash
# Script pour les étudiants ENSEIRB, plusieurs choses à savoir pour les différents systèmes d'exploitation.
# Pour Linux, tout est fonctionnel, tel quel!
# Pour Mac OS, installer docker Desktop puis décommenter les lignes :
# xhost + $(hostname)
# xhost - $(hostname)
# Et changer le DISPLAY en ajoutant host.docker.internal:0
# Tout cela permet d'avoir sur l'ecran de l'host les GUI qui s'affichent.
# Pour Windows, il faut commencer par installer le WSL 2.
# Pour cela, suivez le tuto : https://korben.info/installer-wsl2-windows-linux.html
# Une fois le WSL 2 installé avec Linux et mis par défaut comme dans le tuto, il vous faut mettre à jour WSL 2 avec la commande :
# wsl --update
# Cela permettra au DISPLAY d'exporter les GUI correctement.
# Ensuite, pour faire fonctionner l'application chat, il est nécessaire d'avoir une ip du même réseau que l'hote. Or, de base le WSL 2 est en mode NAT, il faut alors passer en mode bridge.
# Pour mettre le WSL en mode bridge, il vous faut premièrement vérifier que la virtualisation dans le bios est activé.
# Ensuite suivre le tuto suivant : https://gkaelin.com/bridger-le-reseau-de-wsl2-dans-windows-11/
# Et si dans ce tuto, l'HyperV n'est pas activé, installer le driverW11, HyperV.bat dans ce même dossier en mode administrateur avant que continuer le tuto.
currentDirectory="$(pwd)"
imageName=student
echo "Searching for Docker image ..."
DOCKER_IMAGE_ID=$(docker images -q $imageName | head -n 1)
echo "Found and using ${DOCKER_IMAGE_ID}"
xhost + $(hostname)
#host.docker.internal:0
container_id=$(docker run -d --network host --user docker:docker \
-e DISPLAY=host.docker.internal:0 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v `pwd`/Work:/home/docker/Work \
${DOCKER_IMAGE_ID} sleep infinity)
#host.docker.internal:0
docker exec -it --user docker:docker \
-e DISPLAY=host.docker.internal:0 \
-e TERM=xterm-256color \
$container_id /bin/bash
docker commit $container_id student
docker stop $container_id
docker rm $container_id
xhost - $(hostname)