Skip to content

Commit a3f869e

Browse files
committed
Docker: have host process pass variable to determine whether running in container, rather than using variable defined in the image
1 parent 7d3eba7 commit a3f869e

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/Stack/Docker.hs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ preventInContainer inner =
127127
-- | 'True' if we are currently running inside a Docker container.
128128
getInContainer :: (MonadIO m) => m Bool
129129
getInContainer =
130-
do maybeEnvVar <- liftIO (lookupEnv sandboxIDEnvVar)
130+
do maybeEnvVar <- liftIO (lookupEnv inContainerEnvVar)
131131
case maybeEnvVar of
132132
Nothing -> return False
133133
Just _ -> return True
@@ -212,6 +212,7 @@ runContainerAndExit config
212212
(concat
213213
[["run"
214214
,"--net=host"
215+
,"-e",inContainerEnvVar ++ "=1"
215216
,"-e",stackRootEnvVar ++ "=" ++ trimTrailingPathSep stackRoot
216217
,"-e","WORK_UID=" ++ uid
217218
,"-e","WORK_GID=" ++ gid
@@ -757,6 +758,10 @@ fromMaybeProjectRoot = fromMaybe (throw CannotDetermineProjectRootException)
757758
sandboxIDEnvVar :: String
758759
sandboxIDEnvVar = "DOCKER_SANDBOX_ID"
759760

761+
-- | Environment variable used to indicate stack is running in container.
762+
inContainerEnvVar :: String
763+
inContainerEnvVar = concat [map toUpper stackProgName,"_IN_CONTAINER"]
764+
760765
-- | Command-line argument for "docker"
761766
dockerCmdName :: String
762767
dockerCmdName = "docker"

0 commit comments

Comments
 (0)