All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
2.4.1 - 2020-02-21
- Cache yaml files loaded by
!from_yaml
- Drop support for Python 3.4
2.4.0 - 2020-01-06
- Enable scuba to override entrypoint via
--entrypoint
or.scuba.yml
(#125) - Add support for nested scripts (#128)
- Add
SCUBA_ROOT
environment variable (#129) - Add support for escaped dots in
!from_yml
(#137)
- Don't run image entrypoint for each line in a mult-line alias (#121)
- Use
yaml.SafeLoader
for loading config (#133)
- Drop support for Python 2.6, 3.2, and 3.3 (#119, #130)
2.3.0 - 2018-09-10
- Add -e/--env command-line option (#111)
- Add support for setting environment in .scuba.yml (#120)
- Implemented auto-versioning using Git and Travis (#112)
- Copy scubainit to allow SELinux relabeling (#117)
2.2.0 - 2018-03-07
- Allow
script
to be a single string value in the "common script schema" which applies to hooks and aliases (#102)
- Display nicer error message if no command is given and image doesn't specify a
Cmd
(#104) - Don't mangle && in scripts (#100)
- Don't allocate tty if stdin is redirected (#95)
2.1.0 - 2017-04-03
- Added
--image
option (#87)
2.0.1 - 2017-01-17
- Fixed image entrypoint being ignored (#83)
2.0.0 - 2016-11-21
- Added support for enhanced aliases (#67)
- Added support for per-alias image specification (#68)
- Add bash completion support (#69)
- All ancillary files are bind-mounted via single temp dir
- Hook scripts are moved to hooks/ subdirectory
- User commands always executed via shell (#66)
- Top-level directory mounted at same path in container (#70)
- Alias names cannot contain spaces
- Improve distributions (#74, #75, #76, #78)
- Remove support for remote Docker instances (#64) Support for this was limited/broken as of 1.7.0 anyway; this officially removes support for it.
- Fixed inability to run an image that doesn't yet exist locally, broken in 1.7.0 (#79)
1.7.0 - 2016-05-19
- Add support for scubainit hooks
scubainit
re-implemented as a C program, which does the following:- Creates the scubauser user/group
- Sets the umask
- Switches users then execs the user command This is to provide more control during initialization, without the artifacts caused by the use of 'su' in the .scubainit from 1.3.
- scubauser now has a proper writable home directory in the container (#45)
1.6.0 - 2016-02-06
- Add
-d
to pass arbitrary arguments todocker run
1.5.0 - 2016-02-01
- Add
-r
option to run container as root - Add automated testing (both unit and system tests)
- Add support for Python 2.6 - 3.5
- Added to PyPi
- Scuba is now a package, and setup.py installs it as such, including an
auto-generated
console_script
wrapper. --dry-run
output now shows an actual docker command-line.- Only pass
--tty
to docker if scuba's stdout is a TTY.
- Better handle empty
.scuba.yml
and other YAML-related errors - Fix numerous bugs when running under Python 3
1.4.0 - 2016-01-08
- Added
--verbose
and--dry-run
options
- umask is no longer set in the container. (See #24)
- Problems introduced in v1.3.0 with Ctrl+C in images are fixed.
The user command now runs as PID 1 again, as there is no more
.scubainit
script.
1.3.0 - 2016-01-07
- Set umask in container to the same as the host (local Docker only)
- Change working directory from
/build
to/scubaroot
- Use
.scubainit
script to createscubauser
user/group at container startup. This avoids the oddity of running as a uid not listed in/etc/passwd
, avoiding various bugs (see issue 11). (local Docker only)
1.2.0 - 2015-12-27
- Search up the directory hierarchy for .scuba.yml; this allows invoking scuba from a project subdirectory.
- Add
!from_yaml
support to YAML loading; this allows specifying image from an external YAML file (e.g..gitlab-ci.yml
). - Add CHANGELOG.md
- Show better error message when docker cannot be executed
1.1.2 - 2015-12-22
- Don't pass
--user
option when remote docker is being used
1.1.1 - 2015-12-22
- Fix bug when
aliases
is not found in.scuba.yml
1.1.0 - 2015-12-20
- Support for Bash-like aliases, specified in
.scuba.yml
1.0.0 - 2015-12-18
- Remove the
command
node from.scuba.yml
spec; it limits the usefulness of scuba by limiting the user to one command. Now command is specified on command line after scuba.
- Argument parsing to scuba (-v for version)
- Check for and reject extraneous nodes in
.scuba.yml
First versioned release