This configuration is based on the base Node container provided by VSCode, it should work out of the box for most users.
For more information on how to use/create
development containers
follow the VSCode Documentation
See here for more information on the base container https://github.com/microsoft/vscode-dev-containers/blob/main/containers/javascript-node/.devcontainer/base.Dockerfile
To run Cypress in dev containers some additional configuration is required, since Cypress depends on opening a browser (which requires GUI), a DISPLAY
Environment Variable should be exported by the host to tell docker how to properly run GUI. Follow the instructions bellow to add to host OS the required software.
⚠️ You should rebuild the container every time your IP address changes if you want to run Cypress tests
- Install VcXsrv
- Run the XLaunch application, then in it's application menu you'll find a Preferences choice. In the Preferences make this setting:
- Allow connections from network clients
This opens the display so it accepts XServer connections from any non-local computer. The Docker container we're about to create counts - as would a Linux machine in your office.
- Allow connections from network clients
- export
DISPLAY
Environment Variable somewhere (e.g.bashrc
,.zshrc
)# get your IP Address IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}') export DISPLAY = $IP:0
- Install XQuartz
- Run the XQuartz application, then in it's application menu you'll find a Preferences choice. In the Preferences make this setting:
- Allow connections from network clients.
This opens the display so it accepts X11 connections from any non-local computer. The Docker container we're about to create counts - as would a Linux machine in your office.
- Allow connections from network clients.
- Save
DISPLAY
andIP
environment variables somewhere (e.g:.bashrc
,.zshrc
)export IP = $(ipconfig getifaddr en0) # en0 or eth0... might vary depending on your WI-FI/Cable connection export DISPLAY = $IP:0
- With XQuartz NOT running run this once to add IP address:
xhost +$IP