Just some quick notes since I have spent few hours trying to get nix working on Codespaces and get our project running.
I have shared my Dockerfile in this issue at Nix's Github - https://github.com/NixOS/nix/issues/6680
docker-compose
is working fine. We can customize our workspace using Dockerfile. Have to use images provided by Github, using our own image doesn't work. I guess we have to do some more works as stated in this post - have Dockerfile.base as well.
Workspace is stopped after the idle timeout (30mins) but all our work on disk is preserved. So uncommitted changes is still there when we come back, just like working on local computer.
Everytime we changed stuff in .devcontainer
we have to rebuild the container. For quickly testing your Dockerfile, it's better to just run docker build
in the terminal and if it build cleanly then we rebuild.
cd .devcontainer
docker build .
A failure in rebuild will drop us into recovery container so we can fix our Dockerfile but tools are limited here.
Heroku cli login issue - https://github.com/heroku/cli/issues/1914 - ip address mismatch. We have same issue when working with remote vm, a workaround is to tunnel http traffic from our browser to the vm, either with vpn or simply ssh tunnel (we use sshuttle).
- Workaround 1 - define env var HEROKU_API_KEY - the downside is that your action would not be under your username but the username of that api key owner
- Workaround 2 - Copy the credentials from your local machine - it's stored in
$HOME/.netrc
file
https://devcenter.heroku.com/articles/authentication
VSCode editor doesn't enable word wrap by default. Add this to devcontainer.json:-
"editor.wordWrap": "wordWrapColumn",
"editor.wrappingIndent": "same",
"editor.wordWrapColumn": 80
List of limitations - https://code.visualstudio.com/docs/remote/codespaces