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!).
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.
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:
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
)
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
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
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..