@@ -21,6 +21,8 @@ import (
21
21
"errors"
22
22
"fmt"
23
23
"io"
24
+ "os"
25
+ "path/filepath"
24
26
"regexp"
25
27
"time"
26
28
@@ -61,6 +63,24 @@ func NewStorage(rootDir string) (*storage, error) {
61
63
// Mute the logging from distribution.
62
64
logrus .SetOutput (io .Discard )
63
65
66
+ // Create Docker Registry V2 directory structure
67
+ dockerRegistryDir := filepath .Join (rootDir , "docker" , "registry" )
68
+ if err := os .MkdirAll (dockerRegistryDir , 0755 ); err != nil {
69
+ return nil , fmt .Errorf ("failed to create docker registry directory: %w" , err )
70
+ }
71
+
72
+ // Create v2 directory
73
+ v2Dir := filepath .Join (dockerRegistryDir , "v2" )
74
+ if err := os .MkdirAll (v2Dir , 0755 ); err != nil {
75
+ return nil , fmt .Errorf ("failed to create v2 directory: %w" , err )
76
+ }
77
+
78
+ // Create repositories directory under v2
79
+ repositoriesDir := filepath .Join (v2Dir , "repositories" )
80
+ if err := os .MkdirAll (repositoriesDir , 0755 ); err != nil {
81
+ return nil , fmt .Errorf ("failed to create repositories directory: %w" , err )
82
+ }
83
+
64
84
fsDriver := filesystem .New (filesystem.DriverParameters {
65
85
RootDirectory : rootDir ,
66
86
MaxThreads : defaultMaxThreads ,
0 commit comments