How to quickly get an up to date looking resume

· by Vincent De Smet · Read in about 4 min · (645 Words)

It never hurts to keep your resume up to date and after 9 years of negligence, mine looked terribly out dated. (won’t share a picture)

After spending some time looking around on /r/resumes, I came across jsonresume.org and played around with their online resume editor.

Convinced this was a very useful tool I wanted to take it for a spin locally, but as I do not have Node on my freshly installed Windows 10 machine, it seems it would take a while to get it up and running locally…

Well, this isn’t really an issue if you have a local Docker daemon (I still had a CoreOS VM with a Nodejs image ready). But if you’re on Windows, you had to do some leg work in advance, I will go through the Windows steps as well. If you do not have an appropriate Windows environment set up already, it will obviously be a LOT faster to simply install NodeJS, but I had everything pre-configured so this really just took me 5 minutes (no lies, I promise!).

Ensure your Docker Daemon is running

Bring up the VM with PowerShell (Run As Administrator required & assuming you had created a CoreOS VM previously):

$vm = Start-Vm -PassThru coreos2

Monitor the boot process, or don’t (this isn’t necessary, just handy to know when CoreOS has finished booting):

vmconnect $env:COMPUTERNAME $vm.Name -G $vm.Id

Open a shell to the VM, or just export DOCKER_HOST=tcp://192.158.233.130:2375 if you’ve activated the Systemctl enable docker.socket (I didn’t):

ssh core@192.168.233.130

Note: You can get the IP of the VM using the lvms alias I described here or just read it from the Virtual Machine Connection vmconnect window if you opened it earlier.

Optionally, Mount Windows host files to your CoreOS VM

I had already configured my CoreOS to mount shared folders from my Windows host, here are the steps to achieve this, if you can’t do this yet:

  1. Ensure the windows path is shared, mine is «D:\prj\»

    Get-WmiObject -Class Win32_Share -Filter "path='D:\\prj'"
    

    If your path is not shared, you can share any path using PowerShell with the following command

    (Get-WmiObject Win32_Share -List).Create
      (
        "D:\prj\", "prj", 0
      )
    

    Source

  2. Ensure the mount.cifs binary is available on CoreOS, I made a popular Docker Image available on the Docker Hub to achieve this. The following command downloads the image and copies mount.cifs to /opt/bin/ on the CoreOS Host:

    docker run --rm -v /opt/bin:/target so0k/mount.cifs-copy:6.4 /target
    
  3. Mount the samba share in CoreOS

    Use the following bash script vim mounthost.sh:

    #!/bin/bash
    
    
    SMB_HOST=${SMB_HOST:-192.168.233.1}
    SMB_SHARE=${SMB_SHARE:-share}
    SMB_USER=${SMB_USER:-user}
    WIN_MOUNT=${WIN_MOUNT:-/mnt/win}
    read -s -p "Password: " SMB_PASS
    printf "\n"
    printf "mounting drive to $WIN_MOUNT\n"
    sudo /opt/bin/mount.cifs //$SMB_HOST/$SMB_SHARE $WIN_MOUNT -o nolock,username=$SMB_USER,pass=$SMB_PASS,iocharset=utf8
    

    Make the script executable:

    chmod +x mounthost.sh
    

    set the expected env variables:

    export SMB_HOST=192.168.233.1
    export SMB_SHARE=prj
    export SMB_USER=my.username
    

    Run the script, you will be prompted for your password:

    ./mounthost
    

Start a NodeJS container and install jsonresume

Create a new container using the official NodeJS Docker Image (no tag = latest tag), this will be pulled if you do not have an image already. (I can only confirm this works with node:0.12 which is the version I already had on my daemon)

docker run -it --name resume -p 4000:4000 -v /mnt/win:/mnt/win --entrypoint /bin/bash node

This exposes port 4000 on the container to port 4000 on the Docker host, mounts the /mnt/win/ directory into the container and changes the entrypoint to /bin/bash.

Install resume-cli

npm install -g resume-cli

confirm all is working using

resume --help

Read full instructions on the GitHub Repo

If you used the online editor to create a json file, copy the file to your shared folder on your windows machine and serve the file

cd /mnt/win/
mkdir jsonresume
cd /mnt/win/jsonresume
 resume export cv.html --theme flat

At the time of writing, the resume-cli server did not work, so no live editing locally… but here’s a static version of my updated cv using the Flat theme..