Skip to content

Releases: newsnowlabs/dockside

Multiarch (multi-platform) support for Apple Mac M1/M2 (arm64) and Raspberry Pi (arm/v7)

11 Oct 20:53
Compare
Choose a tag to compare

This major release adds multiarch (multiplatform) support for Apple Mac M1/M2 (arm64) and Raspberry Pi (arm/v7) for the first time.

The newsnowlabs/dockside:latest image is now a multiarch image, containing native binary implementations for Intel (x86/amd64), as well as the two new architectures.

As part of multiarch support, the following two demo profiles included in the Dockside image (and their associated Docker images) have also been converted to multiarch to support the same set of platforms:

Dockside v2.0.0 is tested on:

  • Intel (amd64/x86) platforms running Debian Linux and Docker Engine (via the docker-ce package suite)
  • MacOS (amd64/x86 and Apple Mac M1) running Docker Desktop
  • Intel Windows 10 running Docker Desktop
  • Raspberry Pi (arm/v7) running Raspbian Linux and Docker Engine (via the docker-ce package suite)

This release also features several security upgrades of dependencies:

  • Node 16 used for building/running Theia IDE and Dockside Vue app (formerly Node 12)
  • Debian Bullseye used for building/running Dockside (formerly Debian Buster)
  • Dockside Vue app dependencies upgraded

The *.local.dockside.dev SSL certificate is not longer embedded in the Dockside image, but is now downloaded whenever Dockside is launched, addressing #5.

As usual, users of Dockside v1.5.0 or later, who have not yet upgraded to Theia 1.27.0, can still upgrade the version of Theia available to run within existing devtainers to the newest version, by running docker exec <dockside-container> upgrade, then stopping and starting their devtainers.

Full Changelog: v1.12.0...v2.0.0

Theia v1.27.0

18 Sep 11:11
Compare
Choose a tag to compare

This release upgrades the embedded Theia IDE to v1.27.0 from v1.25.0. For details of the changes between these Theia releases, please see:

Users of Dockside v1.5.0 or later can upgrade the version of Theia available to run within existing devtainers to the latest version by running the following command, then stopping and starting their devtainers:

docker exec <dockside-container> upgrade

Theia v1.25.0, build issue resolution, example Debian Desktop profile

16 Sep 23:09
Compare
Choose a tag to compare

This interim release resolves a number of build issues introduced by upstream image/repo changes, and upgrades Theia to v1.25.0 (from v1.23.0).

It also includes a new example profile that demos a Debian Desktop environment served to the browser using an integrated VNC client and server. Simply launch a devtainer from the Debian Desktop profile, open the 'vnc' service and sign in using the password dockside!

For details of the changes between these Theia releases, please see:

Users of Dockside v1.5.0 or later can upgrade the version of Theia available to run within existing devtainers to this new version, by running:

docker exec <dockside-container> upgrade

N.B. Existing devtainers must be stopped and started again for the new version of Theia to be launched.

Upgrade to use Theia v1.23.0

01 May 13:27
Compare
Choose a tag to compare

This release upgrades Dockside to use Theia v1.23.0 (from Theia v1.21.0).

For details of the changes between these Theia releases, please see:

For users of Dockside v1.5.0 or later, you may now upgrade the IDE within your existing devtainers to this version by running:

docker exec <dockside-container> upgrade

This release also incorporates a behind-the-scenes new comprehensive ELF-patching mechanism, called elf-patcher, which runs during the Dockside build, automatically detecting and patching all required binaries, Theia binaries and dynamic library dependencies, and which should greatly simplify future Theia upgrades.

General update v1.9.0

21 Mar 23:37
Compare
Choose a tag to compare

This release brings a broad collection of improvements, most importantly IDE browser titles that specify the devtainer name, making distinguishing open IDE tabs much easier.

Changes

UI

  • Refactor and improve welcome text to provide brief description of Dockside benefits and devtainer launch examples
  • Refactor UI header to render title programatically to allow for future title customisation and update the default UI title and meta description
  • Add dockside.io and GitHub links to header for ease of reference
  • Add footer with dockside.io, GitHub and NewsNow links for ease of reference and credit
  • Rename 'Add Tag' to 'Add User' when editing a devtainer's Developers and Viewers user lists
  • Scroll-to-top on navigation (Launch,

IDE

  • IDE browser title specifies devtainer name, making distinguishing open IDE tabs much easier

Documentation

  • Improve documentation of users.json and roles.json file schema, in particular providing full description of permissions and resources

Build process

  • Make Docker build fail if VSIX plugin download fails
  • Reorder Dockerfile to improve use of build cache by copying Theia and VSIX plugins into image later in build process

Full Changelog: v1.8.0...v1.9.0

General update v1.8.0

23 Feb 22:15
Compare
Choose a tag to compare

This release brings a broad collection of improvements to the UI, to example profiles, profile capabilities, Dockside command line options, devtainer capabilities and some code refactors.

Changes

UI request processing:

  • Fix and improve UI display of devtainer sizes (when enabled)
  • Fix hamburger menu styling for mobile devices
  • Request handling refactors
    • POST sign in to /
    • Redirect to current URI on successful signin
    • Redirect to / on request for unrecognised route
    • Factor out redirect(), html(), remove signin.html, add default route
    • Update signin HTML/CSS

Profiles:

  • Support placeholders in profile volume mount src property
  • Update example profiles to mount ssh keys from a per-user volume
  • Allow profile filenames to begin with a digit
  • Updated example profiles (ordered, using filenames with leading digits; updated names; updated image lists; standardised memory, pids-limit and in some cases cpus)
  • Add example dockside.io Jekyll profile
  • Update Dockside profiles to enlarge /tmp, to accomodate /tmp/vscode-unpacked for built-in VS Code extensions

Dockside command line options:

  • Log command line arguments during initialisation
  • Add --config-set option for making arbitrary assignments to config.json

Devtainer capabilities:

  • Support more LXCFS files and non-default LXCFS mountpoint
  • Support for bind-mounted IDEs

Misc:

  • Fix licence and author incorrectly stated in package.json
  • Silence eslint error parsing '<' inside Mustache template
  • Workaround Vetur/Eslint issue by rewriting Mustache expression

Breaking changes

  • Disable periodic devtainer size measurement by default, for performance reasons. In some configurations, querying dockerd for containers sizes can be prohibitively slow. For now, it can be reenabled by launching Dockside with --config-set .docker.sizes=true. The default may be reverted again at a later date when underlying performance issues are resolved or a workaround found.

Full Changelog: v1.7.1...v1.8.0

Fix passwd file-parsing regression

07 Feb 18:59
Compare
Choose a tag to compare

Commit 56ef813 on 2022-01-22, which introduced cgroup2 support, also introduced a regression, whereby the first instance of non-trailing whitespace would be removed from any file loaded (rather than strictly trailing whitespace as intended). This broke parsing of the passwd file when it contained multiple lines, and may have caused other unpredictable results in parsed files.

This release fixes this regression and upgrading from v1.7.0 to v1.7.1 is necessary to avoid these issues.

Broad collection of fixes, UI updates, and improved host system support

03 Feb 21:54
Compare
Choose a tag to compare

This release brings a broad collection of fixes, new Dockside launch options and launch-time checks, a UI button to view devtainer logs, and support for systems running cgroup2 and Apparmor, among the following changes:

  • Support for host systems running cgroup2
  • New launch option --passwd-stdout outputs autogenerated password to stdout
  • New launch option --passwd-file <file> outputs autogenerated password to
  • Support for security options (i.e. generating desired --security-opt arguments to docker run)
    • Default apparmor and seccomp options in config.json
    • New 'security' subobject options in profiles with full support for apparmor, seccomp, no-new-privileges and labels
    • Fix example Dockside and nginx profiles for host systems running Apparmor
    • Improve documentation to fix Dockside launch instructions for host systems that may be running Apparmor
  • Autogenerated domain zone file for --ssl-zone <zone> TTL now set to 300 seconds, to allow for faster IP address updates
  • New launch sanity-check: test /var/run/docker.sock responds to info query
  • More reliable detection of container ID on devtainer launch using --cidfile
  • New UI button to view devtainer logs, shown to users with corresponding getContainerLogs user/role permission
  • Client/server API improvements
    • Update API to regularise URIs and use query string for most arguments
    • Augment all API responses with either HTTP 200 or 401 response codes
  • Fix edge case where newly-created devtainer is not identified at time of processing start event
  • Miscellaneous documentation improvements

Upgrade to use Theia v1.21.0

20 Dec 11:23
Compare
Choose a tag to compare

This release upgrades Dockside to use Theia v1.21.0 (from Theia v1.20.0).

For details of the Theia v1.21.0 release, please see https://github.com/eclipse-theia/theia/releases/tag/v1.21.0.

For users of Dockside v1.5.0 or later, you may now upgrade the IDE within your existing devtainers to this version by running:

docker exec <dockside-container> upgrade

New IDE upgrade command

19 Dec 22:39
Compare
Choose a tag to compare

Starting from this version of Dockside, upgrading the IDE within existing devtainers is now a simple matter of running this one command:

docker exec <dockside-container> upgrade

N.B. Any newer IDE will be launched only after devtainers have been stopped and restarted.

Doing the above step is recommended before upgrading the running Dockside container (which will upgrade, where available, the version of the Dockside IDE running within subsequently-launched devtainers).

This release also refactors and simplifies the instructions for upgrading Dockside, which detail the new two-step upgrade process in full.