Skip to content

Latest commit

 

History

History
87 lines (62 loc) · 3.23 KB

WINDOWS.md

File metadata and controls

87 lines (62 loc) · 3.23 KB

Cage on Windows

Generally speaking, docker-compose and Docker Engine are a work in progress on Windows. We have highly experimental Windows support in cage for people who want to try it out and let us know about any issues.

But be warned! Not all the test suites pass yet. For an overview of the current unit test status, click on the AppVeyor build badge below:

AppVeyor

This document should give you all the information you need on available builds and overall guidance when working with cage on Windows.

Installation from crates.io

First make sure you install rust for x86_64-pc-windows-gnu using the rustup-init installer. You should use the stable stable toolchain for your initial install.

Next up you'll need to get a build env going with Msys2. Grab a MinGW installer from Mingw-w64's sf.net page.

Launch the install and follow the prompts, making sure you set the arch to x86_64 so that it matches Rust. Thread types should be fine as Posix.

After the install succeeds (if you get download failures just keep trying), open up the new batch script that was installed. You should be able to find it either in your start menu or under C:\Program Files\mingw-w64.

From the prompt you should be able to use the rustup and cargo commands. Now you should be able to install cage using:

cargo install cage

Building from source

If you want to make changes to cage, you can clone the source code from GitHub, cd to the cage directory, and run:

cargo build

Assuming nothing goes wrong, you should see a binary under the target directory. To install it, run:

cargo install --path .

To run the unit tests (many of which are still failing), run:

cargo test

Vault support

Vault will not work with the minimal build since it requires OpenSSL. Due to the difficulties of getting OpenSSL to build with cage presently (as in, copying and renaming several .lib and .dll files and hunting around for correct binaries for your platform), we don't advise that you build Vault support yet.

This is normally fine, because you only need Vault support if you are running Vault servers and if you're deploying your project to staging or production.

But if you really want to try Vault on Windows, you should start with just trying to get cage to build as described above first. Then try running cargo build with any arguments, which should start you off in the right direction for what's missing. You'll likely need to grab binaries from openssl wiki and just start renaming things in order to satisfy the build. I had luck copying the binaries into target/release/deps and then continually running cargo build --release while I checked to see if the binary would work for my build or not.

If you know a way to get this working repeatably, we'd love to know!

Good luck! And don't hesitate to file issues on GitHub and ask for help.