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:
This document should give you all the information you need on available
builds and overall guidance when working with cage
on Windows.
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
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 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.