Comments (5)
I wasn't able to complete the task, but here are my findings that could be useful for when we're going to work on it again.
I'm using a Macbook, so everything that follows assumes that you're using a Macbook (maybe some statements applies also for other systems).
Windows VM using VirtualBox
TL;DR: Don't do it (you could give it a try if VBox supports nested virtualization)
- I've downloaded the image from here: https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
- I've installed docker, git, go
- I wasn't able to run Docker properly, even the
docker run hello-world
was not working - I tried to find the reason why by looking at issues and reading docker's documentation
- By carefully reading the docker's for Windows documentation regarding the requirements it states that the system requires to support virtualization, which is a requirement that I assumed was satisfied
- I was wrong 😭
- The virtualization is required as it spins up a VM using Hyper-V running a Linux system
- I discovered that the reason is that at time of writing VBox doesn't support nested virtualization for 64-bit VMs (I didn't even know that this was an issue)
- In particular the guest VM doesn't recognize the CPU as supporting VT-x which is required for virtualization
- Actually there's a legacy installation for systems not meeting the requirements, but I hadn't tried it and moved to VMware instead
Windows VM using VMWare Fusion
TL;DR: I had problems in bind-mounting directories and wasn't able to make engine work
- I've downloaded the image from here: https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
- I've installed docker, git, go
- I was able to run docker by enabling virtualization (there's an option on VMware)
- The initial build of the image of
srcd-server
was a pain due to some pseudo-random errors 😡:
Step 7/10 : RUN apk update && apk add ca-certificates libstdc++ libxml2-dev && rm -rf /var/cache/apk/*
---> Running in 207c364255be
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
v3.8.2-10-g3fc272643e [http://dl-cdn.alpinelinux.org/alpine/v3.8/main]
v3.8.2-8-g684f341f68 [http://dl-cdn.alpinelinux.org/alpine/v3.8/community]
OK: 9545 distinct packages available
(1/7) Installing ca-certificates (20171114-r3)
ERROR: ca-certificates-20171114-r3: temporary error (try again later)
(2/7) Installing libgcc (6.4.0-r9)
(3/7) Installing libstdc++ (6.4.0-r9)
ERROR: libgcc-6.4.0-r9: temporary error (try again later)
(4/7) Installing pkgconf (1.5.3-r0)
ERROR: libstdc++-6.4.0-r9: temporary error (try again later)
(5/7) Installing zlib-dev (1.2.11-r1)
ERROR: pkgconf-1.5.3-r0: temporary error (try again later)
(6/7) Installing libxml2 (2.9.8-r1)
ERROR: zlib-dev-1.2.11-r1: temporary error (try again later)
(7/7) Installing libxml2-dev (2.9.8-r1)
ERROR: libxml2-2.9.8-r1: temporary error (try again later)
ERROR: libxml2-dev-2.9.8-r1: temporary error (try again later)
7 errors; 4 MiB in 13 packages
The command '/bin/sh -c apk update && apk add ca-certificates libstdc++ libxml2-dev && rm -rf /var/cache/apk/*' returned a non-zero code: 7
- Honestly I don't remember how I solved it, I think by just trying again and again as I hadn't find any other working solution
- I successfully ran
srcd init
using docker configured to use Linux containers - I failed to run
srcd web sql
, unable to rungitbase
- At some point docker suddenly stopped working complaining of a very weird error 🤷♂️
- I tried using Docker configured to use Windows containers but that made even
srcd init
fail - I then started from a fresh VM and now everything seems more "stable" without pseudo-random errors:
- Enabled virtualization (VMWare setting)
- Synced time between host and guest (VMWare setting)
- Installed Docker
- Installed srcd
- Installed git (by making it available in from shell)
- Installed Go
- After some investigation I realized the problem was related to bind-mounting a directory when starting
gitbase
- It seemed that only
c:/
andc:/Users
are bind-mountable, but even if mounted the guest can only see the first level of the mounted directory - I also tried changing the format of the directory as explained in some issues such as replacing "/" with "", replacing "c:/" with "//c/" or with "c/" and many other combinations
- I found many issues regarding mounting volumes and directories on Docker for Windows, such as the followings that may be related:
- The impression is that docker for Windows is not actually much usable, or that the problem is actually related to running Windows on a VM
Windows from a USB
TL;DR: Ensure you have an external keyboard and mouse (maybe I won't need them if you're lucky)
- I made a bootable USB with Windows 10 by following a mix of the following guides:
- Here are the steps:
- Follow guide 1, but replace step 1 by using Windows running on VMware (yes you still need Windows on VMware to make a bootable USB)
- Download Windows 10 ISO file from here
- As time of writing there are:
- Windows 10 October 2018 Update
- Windows 10 April 2018 Update
I've downloaded the newest one (read note at 5.)
- Install WinToUSB
- Follow steps from 23 to 28 of guide 2 (note that at step 27 the program told me that for the specific build I was using I had to use WinToUSB Enterprise, maybe the other ISO image doesn't need it)
- Follow steps from 6 to 11 of guide 1 (note that step 8 will take long time, I was actually near to killing the VM as I was thinking it hanged at 0%)
- I was able to boot Windows from USB! 🎉 (even in this case it took a long time and it seems to hang with the Windows logo and a spinner)
- After 1 or 2 restarts (I don't remember) the Windows installation process assisted by Cortana starts
- That's when I realized that nor the keyboard nor the mouse were working 🤦♂️
I'm putting back this issue to backlog as I currently don't have nor an external keyboard nor an external mouse.
from engine-deprecated.
I got me both a wired keyboard and a wired mouse to try to continue from where I left.
Good news:
- both mouse and keyboard work
Bad news:
- really sloooooooooow
- the network adapter seems to be not recognized. 🤦♂️
I wanted to try using the ethernet cable, but I don't have the adapter to connect it to the Macbook Pro. On the other hand I have the adapter to connect it to my Macbook Air, then I tried there.
Good news:
- built-in trackpad and keyboard work
Bad news:
- even slower
- even with the cable, internet is not working.
I'm putting this issue back to TODO
again, and if I happen to get an USB network adapter I'm gonna try it again.
from engine-deprecated.
@se7entyse7en can't we just get a Windows cloud instance for this?
A second alternative is installing Windows in some spare source{d} laptop (Dell, Lenovo).
from engine-deprecated.
There is already a request for a windows machine here https://github.com/src-d/infrastructure/issues/413.
from engine-deprecated.
Also asked Esther about any available laptops we could use for this.
from engine-deprecated.
Related Issues (20)
- Make SQL interactive REPL testing work on Windows
- Use `icmd` to test interactive SQL REPL HOT 2
- SIGSEGV on `srcd sql` on macOS HOT 2
- Document more clearly that docker toolbox is not supported
- Handle missing docker desktop or docker toolbox installation. HOT 6
- Migrate from bblfsh/client-go to bblfsh/go-client
- Mount gitbase workdir as readonly
- New command to edit the config file
- Make use of regression tests
- Update to gitbase 0.20 beta
- docs: provide links to what's supported on gitbase HOT 1
- TestInteractiveREPL is flaky
- Update bblfshd to v2.12.1 HOT 5
- Tagging the latest built image also with `dev-latest` HOT 3
- Use "short" names for components HOT 2
- Broken TOC in the README HOT 2
- Question: user name and password for gitbase? HOT 2
- Run integration tests on current master HOT 14
- Log messages use broken color characters on windows
- Error attempting to open web parse/SQL HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from engine-deprecated.