File tree 1 file changed +22
-14
lines changed
1 file changed +22
-14
lines changed Original file line number Diff line number Diff line change 95
95
mkDerivation = cfg : nix2container . nix2container . buildImage {
96
96
name = cfg . name ;
97
97
tag = cfg . version ;
98
- initializeNixDatabase = true ;
98
+ initializeNixDatabase = cfg . isDev ;
99
99
nixUid = lib . toInt uid ;
100
100
nixGid = lib . toInt gid ;
101
101
102
- copyToRoot = [
102
+ copyToRoot = lib . lists . optionals cfg . isDev [
103
103
( pkgs . buildEnv {
104
104
name = "devenv-container-root" ;
105
105
paths = [
123
123
} )
124
124
] ;
125
125
126
- perms = [
126
+ perms = lib . lists . optionals cfg . isDev [
127
127
{
128
128
path = mkTmp ;
129
129
regex = "/tmp" ;
@@ -135,17 +135,19 @@ let
135
135
}
136
136
] ;
137
137
138
- config = {
139
- Entrypoint = cfg . entrypoint ;
140
- User = "${ user } " ;
141
- WorkingDir = "${ homeDir } " ;
142
- Env = lib . mapAttrsToList
143
- ( name : value :
144
- "${ name } =${ toString value } "
145
- )
146
- config . env ++ [ "HOME=${ homeDir } " "USER=${ user } " ] ;
147
- Cmd = [ cfg . startupCommand ] ;
148
- } ;
138
+ config = lib . attrsets . mergeAttrsList [
139
+ {
140
+ User = "${ user } " ;
141
+ WorkingDir = "${ homeDir } " ;
142
+ }
143
+ ( if cfg . isDev then {
144
+ Env = lib . mapAttrsToList ( name : value : "${ name } =${ toString value } " )
145
+ config . env ++ [ "HOME=${ homeDir } " "USER=${ user } " ] ;
146
+ Entrypoint = cfg . entrypoint ;
147
+ Cmd = [ cfg . startupCommand ] ;
148
+ } else
149
+ { } )
150
+ ] ;
149
151
} ;
150
152
151
153
# <registry> <args>
239
241
description = "Set to true when the environment is building this container." ;
240
242
} ;
241
243
244
+ isDev = lib . mkOption {
245
+ type = types . bool ;
246
+ default = true ;
247
+ description = "Is a development containers (add tools)." ;
248
+ } ;
249
+
242
250
derivation = lib . mkOption {
243
251
type = types . package ;
244
252
internal = true ;
You can’t perform that action at this time.
0 commit comments