@@ -104,6 +104,7 @@ def setup_variables(variables: Optional[Dict[str, str]]):
104
104
if variables is None :
105
105
return
106
106
for key , value in variables .items ():
107
+ print (key )
107
108
os .environ [key ] = value
108
109
109
110
@@ -121,6 +122,7 @@ def setup_network(
121
122
return
122
123
123
124
logger .debug ("Setting up networking" )
125
+ logger .debug ("IP ADDR:" + ip )
124
126
system ("ip addr add 127.0.0.1/8 dev lo brd + scope host" )
125
127
system ("ip addr add ::1/128 dev lo" )
126
128
system ("ip link set lo up" )
@@ -157,9 +159,6 @@ def setup_volumes(volumes: List[Volume]):
157
159
else :
158
160
system (f"mount -o rw /dev/{ volume .device } { volume .mount } " )
159
161
160
- system ("mount" )
161
-
162
-
163
162
def setup_code_asgi (
164
163
code : bytes , encoding : Encoding , entrypoint : str
165
164
) -> ASGIApplication :
@@ -450,28 +449,43 @@ def receive_config(client) -> ConfigurationPayload:
450
449
451
450
452
451
def setup_docker ():
452
+ logger .debug ("Setting up docker" )
453
453
docker_mountpoint = os .environ .get ("DOCKER_MOUNTPOINT" )
454
454
os .makedirs ("/docker" , exist_ok = True )
455
455
system ("bin/mount -t tmpfs -o noatime,mode=0755 tmpfs /docker" )
456
- os .makedirs ("/docker/persist/work" , exist_ok = True )
457
- os .makedirs ("/docker/persist/upper" , exist_ok = True )
458
- # system("stat -f /")
459
- # system(f"stat -f {docker_mountpoint}")
460
- # system("stat -f /docker/")
461
- # system("stat -f /docker/persist/")
462
- # system("stat -f /docker/persist/upper")
463
- # system("stat -f /docker/persist/work")
464
- # system("stat -f /var/lib/docker")
465
- logger .debug (os .path .isdir ("/docker/persist" ))
466
- logger .debug (os .path .isdir ("/docker/persist/upper" ))
467
- system (f'/bin/mount -o noatime,lowerdir={ docker_mountpoint } ,upperdir=/docker/persist/upper,workdir=/docker/persist/work -t overlay "overlayfs:/docker/persist/upper" /var/lib/docker' )
468
- return subprocess .Popen ("/usr/sbin/dockerd" , stderr = subprocess .PIPE , encoding = 'utf-8' )
456
+ os .makedirs ("/docker/persist/layers/work" , exist_ok = True )
457
+ os .makedirs ("/docker/persist/metadata/work" , exist_ok = True )
458
+ os .makedirs ("/docker/persist/layers/upper" , exist_ok = True )
459
+ os .makedirs ("/docker/persist/metadata/upper" , exist_ok = True )
460
+ # docker_daemon = subprocess.Popen(["/usr/sbin/dockerd", "--storage-driver=vfs"], stderr=subprocess.PIPE, stdout=subprocess.PIPE, encoding='utf-8')
461
+ system (f'/bin/mount -o noatime,lowerdir={ docker_mountpoint } /layers,upperdir=/docker/persist/layers/upper,workdir=/docker/persist/layers/work -t overlay "overlayfs:/docker/persist/layers/upper" /var/lib/docker/vfs' )
462
+ system (f'/bin/mount -o noatime,lowerdir={ docker_mountpoint } /metadata,upperdir=/docker/persist/metadata/upper,workdir=/docker/persist/metadata/work -t overlay "overlayfs:/docker/persist/metadata/upper" /var/lib/docker/image/vfs' )
463
+ print ("Before daemon:\n " )
464
+ os .system ("stat -f /var/lib/docker/image/vfs/repositories.json" )
465
+ os .system ("cat /var/lib/docker/image/vfs/repositories.json" )
466
+ print ("here" )
467
+ # docker_daemon = subprocess.Popen(["/usr/sbin/dockerd", "--storage-driver=vfs"], stderr=subprocess.PIPE, stdout=subprocess.PIPE, encoding='utf-8')
468
+ print ("there" )
469
+ os .system ("docker info" )
470
+ docker_daemon = subprocess .Popen (["/usr/sbin/dockerd" , "--storage-driver=vfs" ], stderr = subprocess .PIPE , encoding = 'utf-8' )
471
+ # os.system("/usr/sbin/dockerd --storage-driver=vfs")
472
+ while os .system ("docker ps > /dev/null 2>&1" ) != 0 :
473
+ # print("yulu")
474
+ # stderr = docker_daemon.communicate()
475
+ # print("stderr: " + stderr)
476
+ continue
477
+ print ("After daemon:\n " )
478
+ os .system ("stat -f /var/lib/docker/image/vfs/repositories.json" )
479
+ os .system ("cat /var/lib/docker/image/vfs/repositories.json" )
480
+ system ("mount" )
481
+
469
482
470
483
def setup_system (config : ConfigurationPayload ):
471
484
setup_hostname (config .vm_hash )
472
485
setup_variables (config .variables )
473
486
setup_volumes (config .volumes )
474
- docker_daemon = setup_docker ()
487
+ setup_docker ()
488
+ print ("dameon ready" )
475
489
setup_network (config .ip , config .route , config .dns_servers )
476
490
setup_input_data (config .input_data )
477
491
logger .debug ("Setup finished" )
0 commit comments