Skip to content

Instantly share code, notes, and snippets.

@noxidsoft
Created December 16, 2022 05:53
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save noxidsoft/0984dc69c7576df31f3ba399691c80a3 to your computer and use it in GitHub Desktop.
Save noxidsoft/0984dc69c7576df31f3ba399691c80a3 to your computer and use it in GitHub Desktop.
WSL2-Docker-Laravel

setup wsl2 (Ubuntu) after installation

install docker desktop

https://www.docker.com/products/docker-desktop/


check versions - PowerShell - run elevated (Administrator)

https://docs.microsoft.com/en-us/windows/wsl/install-win10

> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

> wsl --set-default-version 2

double check

> wsl -l -v

> wsl --set-version Ubuntu-20.04 2

or...

> wsl --set-version Ubuntu-22.04 2


after WSL install of Ubuntu 22.04

$ sudo apt update

$ sudo apt upgrade


install composer and supporting (node version, etc)

https://dev.to/mafx/php-development-on-win10-through-wsl2-laravel-valet-and-tighten-takeout-5en8

$ sudo apt install php-cli unzip

$ sudo apt-get install php-zip

$ sudo apt install php-mbstring

$ sudo apt-get install php-curl

$ sudo apt install php-xml

$ sudo apt install php-mysql

change to home directory

$ cd ~

$ curl -sS https://getcomposer.org/installer -o composer-setup.php

$ HASH=`curl -sS https://composer.github.io/installer.sig`

$ echo $HASH

$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo '--- Installer verified ---'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

$ --- Installer verified ---

$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

$ sudo rm composer-setup.php

$ sudo apt install nodejs

$ sudo apt install npm

$ sudo apt install zip

nice to have

$ sudo npm install --global yarn

$ yarn global add @quasar/cli

$ npm install typescript


Update git

$ sudo add-apt-repository ppa:git-core/ppa -y

$ sudo apt-get install git -y

$ git --version


SSH - follow this >>>

https://ubuntu.com/tutorials/ssh-keygen-on-windows#3-key-generation-with-ubuntu-on-wsl

$ ssh-keygen

next command provides key for inclusion to github/gitea

$ cat ~/.ssh/id_rsa.pub

below may not be necessary - check with this first $ eval $(ssh-agent -s)

$ ssh-add ~/.ssh/id_rsa_key

if adding .ssh for every new instance doesn't work - https://esc.sh/blog/ssh-agent-windows10-wsl2/

$ sudo apt-get install keychain

add this to ~/.bashrc - $HOST should be something like Bobs-PC - get it with $ hostname

$ sudo nano ~/.bashrc

For Loading the SSH key

/usr/bin/keychain -q --nogui $HOME/.ssh/id_rsa

source $HOME/.keychain/$HOST-sh

reloading .bashrc in current terminal session

$ source .bashrc


docker-compose

https://docs.docker.com/compose/install/ > Go to Linux tab for WSL

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.28.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

if installation fails, try creating a soft-link

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

test docker-compose, your build number may be different

$ docker-compose --version

docker-compose version 1.28.4, build 1110ad01


get ready to add code

$ mkdir ~/code

$ cd ~/code


Laravel

Laravel project setup

only need to install global laravel tool once

$ composer global require "laravel/installer"

create new laravel projects

$ laravel new myprojectname

$ cd myprojectname


fix node version issue, Vite is only compatible with node v14 and higher

https://www.reddit.com/r/laravel/comments/xqtcgz/ubuntu_and_node_getting_syntaxerror_unexpected/

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

$ nvm install node

$ sudo apt auto-remove nodejs

$ nvm install v18

$ nvm use v18

$ nvm alias default v18

sail usage - make sure Docker Desktop is running

$ composer require laravel/sail --dev

$ php artisan sail:install

$ ./vendor/bin/sail up


Windows hosts file for WSL

https://github.com/scottlerch/HostsFileEditor

or using notepad edit in Administrator mode

Windows 10/11 – "C:\Windows\System32\drivers\etc\hosts"

Linux – "/etc/hosts"

Mac OS X – "/private/etc/hosts"

add this above the "Added by Docker Desktop"

give-it-a-label

127.0.0.1 myprojectname.test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment