Giter Club home page Giter Club logo

Comments (5)

se7entyse7en avatar se7entyse7en commented on June 30, 2024

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

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 run gitbase
  • 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:/ and c:/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:
    1. 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)
    2. Download Windows 10 ISO file from here
    3. 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.)
    4. Install WinToUSB
    5. 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)
    6. 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.

se7entyse7en avatar se7entyse7en commented on June 30, 2024

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.

marnovo avatar marnovo commented on June 30, 2024

@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.

carlosms avatar carlosms commented on June 30, 2024

There is already a request for a windows machine here https://github.com/src-d/infrastructure/issues/413.

from engine-deprecated.

marnovo avatar marnovo commented on June 30, 2024

Also asked Esther about any available laptops we could use for this.

from engine-deprecated.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.