diff --git a/ChangeLog.md b/ChangeLog.md index f003afa6e9..8b63781d73 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -22,6 +22,8 @@ Other enhancements: * Docker: pass ~/.ssh and SSH auth socket into container, so that git repos work [#1358](https://github.com/commercialhaskell/stack/issues/1358) +* Docker: strip suffix from docker --version + [#1653](https://github.com/commercialhaskell/stack/issues/1653) Bug fixes: diff --git a/src/Stack/Docker.hs b/src/Stack/Docker.hs index b57912e7a8..8eee4d378e 100644 --- a/src/Stack/Docker.hs +++ b/src/Stack/Docker.hs @@ -697,7 +697,7 @@ checkDockerVersion envOverride docker = dockerVersionOut <- readDockerProcess envOverride ["--version"] case words (decodeUtf8 dockerVersionOut) of (_:_:v:_) -> - case parseVersionFromString (dropWhileEnd (not . isDigit) v) of + case parseVersionFromString (stripVersion v) of Just v' | v' < minimumDockerVersion -> throwM (DockerTooOldException minimumDockerVersion v') @@ -711,6 +711,7 @@ checkDockerVersion envOverride docker = _ -> throwM InvalidVersionOutputException where minimumDockerVersion = $(mkVersion "1.6.0") prohibitedDockerVersions = [] + stripVersion v = fst $ break (== '-') $ dropWhileEnd (not . isDigit) v -- | Remove the project's Docker sandbox. reset :: (MonadIO m, MonadReader env m, HasConfig env)