generated from Templates/Baseline
Compare commits
13 Commits
v0.3.0
...
f22fe206c1
Author | SHA1 | Date | |
---|---|---|---|
f22fe206c1 | |||
b975997652 | |||
f656a2054f | |||
e912d86ee8 | |||
78c91dceba | |||
46fc34c191 | |||
c55408b4b3 | |||
c6e65b7782 | |||
33f8bc90c0 | |||
8c9c9e5138 | |||
5922aabe3d | |||
a25b231654 | |||
330f852e56 |
@ -6,9 +6,11 @@
|
||||
|
||||
> :bulb: Select your test plan for the code changes.
|
||||
|
||||
- [x] CI pipeline tests
|
||||
- [ ] Custom test
|
||||
- [ ] No test plan
|
||||
| Choice | Test Method |
|
||||
| :----: | :----------- |
|
||||
| ✅ | CI pipeline tests |
|
||||
| | Custom test |
|
||||
| | No test plan |
|
||||
|
||||
##### Details / Justification
|
||||
|
||||
|
1
.vscode/dictionaries/project-words.txt
vendored
1
.vscode/dictionaries/project-words.txt
vendored
@ -22,3 +22,4 @@ srv
|
||||
tbd
|
||||
traefik
|
||||
tuanpham
|
||||
volta
|
||||
|
16
CHANGELOG.md
16
CHANGELOG.md
@ -65,3 +65,19 @@
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.11.0 (#45)
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.10.0 (#43)
|
||||
|
||||
## [v0.3.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.1) - 2023-07-04
|
||||
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.14.1 (#47)
|
||||
|
||||
## [v0.4.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.4.0) - 2023-07-19
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* Fix shellcheck issues (#55)
|
||||
* Disable starship python module (#52)
|
||||
* ✨ FEATURES
|
||||
* Add docker-cli (#54)
|
||||
* Adds Volta as default version manager for NodeJs (#53)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Bump go version (#49)
|
||||
|
@ -1,4 +1,4 @@
|
||||
FROM quay.io/linuxserver.io/code-server:4.11.0
|
||||
FROM quay.io/linuxserver.io/code-server:4.14.1
|
||||
|
||||
#LABEL build_version=""
|
||||
LABEL maintainer="OCram85"
|
||||
|
18
README.md
18
README.md
@ -55,7 +55,7 @@ Therefore you need
|
||||
version: "3.8"
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.2.0
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
@ -77,10 +77,11 @@ services:
|
||||
volumes:
|
||||
# store workspace and use config in volume.
|
||||
- codedata:/config
|
||||
# mount docker socket to manage host docker
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
# no need to expose the port. traefik acts as reverse proxy and handles the https access.
|
||||
#ports:
|
||||
# - 8443:8443
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arkanum-sphere
|
||||
- traefik-public
|
||||
@ -106,7 +107,7 @@ See their [docs](https://github.com/linuxserver/docker-code-server#parameters) a
|
||||
version: "3.8"
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.2.0
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
@ -173,11 +174,13 @@ This helps reducing the image size.
|
||||
code-server container environment.
|
||||
|
||||
Syntax: arkanum RUNTIME ...
|
||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
||||
RUNTIME [docker-cli|dotnet|gitea|golang|nodejs|volta|powershell]
|
||||
docker-cli Installs the latest docker-ce cli.
|
||||
dotnet Installs latest LTS dotnet core sdk + runtime.
|
||||
gitea Installs gitea tools like the changelog generator.
|
||||
golang Installs golang 1.19.3.
|
||||
nodejs Installs latest NodeJs LTS version.
|
||||
nodejs Installs latest NodeJs LTS version using Volta.
|
||||
volta Installs Volta as NodeJs version manager.
|
||||
powershell Installs latest PowerShell LTS version.
|
||||
--disable-motd Disables hint in new bash terminal.
|
||||
--install-extensions Installs predefined recommended extensions.
|
||||
@ -218,6 +221,11 @@ Additionally we install these extensions on container startup:
|
||||
|
||||
## 💣 Known Issues
|
||||
|
||||
### Starship.rs
|
||||
|
||||
Starship detects workspaces as active python projects. It always appends the prompt
|
||||
fragment `via 🐍 (lsiopy)`. For now I disabled the python module in starship.
|
||||
|
||||
### 🐛 Default extensions installation timing error
|
||||
|
||||
If the automatic installation of the default extension fails, you can always retry he installation with the
|
||||
|
75
arkanum
75
arkanum
@ -8,11 +8,13 @@ function showHelp() {
|
||||
code-server container environment.
|
||||
|
||||
Syntax: arkanum RUNTIME ...
|
||||
RUNTIME [dotnet|golang|nodejs|powershell]
|
||||
RUNTIME [docker-cli|dotnet|gitea|golang|nodejs|volta|powershell]
|
||||
docker-cli Installs the latest docker-cli.
|
||||
dotnet Installs latest LTS dotnet core sdk + runtime.
|
||||
gitea Installs gitea tools like the changelog generator.
|
||||
golang Installs golang 1.19.3.
|
||||
nodejs Installs latest NodeJs LTS version.
|
||||
nodejs Installs latest NodeJs LTS version using Volta.
|
||||
volta Installs Volta as NodeJS version manager.
|
||||
powershell Installs latest PowerShell LTS version.
|
||||
--disable-motd Disables hint in new bash terminal.
|
||||
--install-extensions Installs predefined recommended extensions.
|
||||
@ -48,6 +50,35 @@ function sayE() {
|
||||
fi
|
||||
}
|
||||
|
||||
function sayW() {
|
||||
if [[ -n "$2" ]]; then
|
||||
echo -e "🧙 \e[33markanum\e[0m \e[34m[⚒️ $2]\e[0m: $1" 1>&2
|
||||
else
|
||||
echo -e "🧙 \e[33markanum\e[0m: $1" 1>&2
|
||||
fi
|
||||
}
|
||||
|
||||
function instDockerCLI() {
|
||||
say "Installing docker-cli..." "docker-cli"
|
||||
say "Getting requires packages..." "docker-cli"
|
||||
sudo -E apt-get update > /dev/null
|
||||
sudo -E apt-get install ca-certificates curl gnupg
|
||||
say "Setting up docker repository..." "docker-cli"
|
||||
sudo -E install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo -E gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
sudo -E chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
# shellcheck disable=SC2046,SC2027
|
||||
echo \
|
||||
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
||||
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
say "Installing docker-ce-cli package" "docker-cli"
|
||||
sudo -E apt-get update > /dev/null
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
docker-ce-cli
|
||||
say "docker-cli done." "docker-cli"
|
||||
}
|
||||
|
||||
function instDotNet() {
|
||||
say "Installing dotnet requirements..." "dotnet"
|
||||
sudo -E apt-get update > /dev/null
|
||||
@ -60,6 +91,7 @@ function instDotNet() {
|
||||
|
||||
say "Installing latest .NET Core LTS release..." "dotnet"
|
||||
/tmp/dotnet-install.sh --channel LTS
|
||||
# shellcheck disable=SC2016
|
||||
echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null
|
||||
|
||||
say "Cleaning up..." "dotnet"
|
||||
@ -73,7 +105,7 @@ function instDotNet() {
|
||||
|
||||
function instGoLang() {
|
||||
if [[ -z "$1" ]]; then
|
||||
GOVERSION="1.19.3"
|
||||
GOVERSION="1.20.6"
|
||||
else
|
||||
GOVERSION="$1"
|
||||
fi
|
||||
@ -83,6 +115,7 @@ function instGoLang() {
|
||||
say "Installing golang ($GOVERSION)...." "GoLang"
|
||||
sudo rm -rf /usr/local/go
|
||||
sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
|
||||
# shellcheck disable=SC2016
|
||||
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/bash.bashrc > /dev/null
|
||||
say "Cleaning up..." "GoLang"
|
||||
rm -f /tmp/golang.tar.gz
|
||||
@ -107,6 +140,18 @@ function instNodeJs() {
|
||||
say "done." "NodeJs"
|
||||
}
|
||||
|
||||
function instNodeJS2() {
|
||||
say "Installing NodeJS LTS via Volta..." "NodeJS"
|
||||
volta install node@lts
|
||||
say "done." "NodeJS"
|
||||
}
|
||||
|
||||
function instVolta() {
|
||||
say "Installing Volta as NodeJS version manager..." "Volta"
|
||||
curl -#fSl https://get.volta.sh | bash
|
||||
say "done." "Volta"
|
||||
}
|
||||
|
||||
function instPwsh() {
|
||||
say "Installing PowerShell requirements..." "PowerShell"
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
@ -150,7 +195,7 @@ function instCodeExtension() {
|
||||
say "Downloading required extensions...." "Extension"
|
||||
# Gitlens
|
||||
say "Downloading 'gitlens'..." "Extension"
|
||||
curl -#fSL https://open-vsx.org/api/eamodio/gitlens/13.1.1/file/eamodio.gitlens-13.1.1.vsix -o /tmp/eamodio.gitlens-13.1.1.vsix
|
||||
curl -#fSL https://open-vsx.org/api/eamodio/gitlens/14.0.1/file/eamodio.gitlens-14.0.1.vsix -o /tmp/eamodio.gitlens-13.1.1.vsix
|
||||
say "Installing 'gitlens'..." "Extension"
|
||||
install-extension /tmp/eamodio.gitlens-13.1.1.vsix
|
||||
say "Cleaning up 'gitlens' install files" "Extension"
|
||||
@ -158,7 +203,7 @@ function instCodeExtension() {
|
||||
|
||||
# OneDarkPro
|
||||
say "Downloading 'One Dark Pro' theme..." "Extension"
|
||||
curl -#fSL https://open-vsx.org/api/zhuangtongfa/material-theme/3.15.6/file/zhuangtongfa.material-theme-3.15.6.vsix -o /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||
curl -#fSL https://open-vsx.org/api/zhuangtongfa/material-theme/3.15.18/file/zhuangtongfa.material-theme-3.15.18.vsix -o /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||
say "Installing 'One Dark Pro' theme..." "Extension"
|
||||
install-extension /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||
say "Cleaning up 'One Dark Pro' install files" "Extension"
|
||||
@ -166,7 +211,7 @@ function instCodeExtension() {
|
||||
|
||||
# vscode-icons
|
||||
say "Downloading 'vscode-icons' theme..." "Extension"
|
||||
curl -#fSL https://open-vsx.org/api/vscode-icons-team/vscode-icons/12.0.1/file/vscode-icons-team.vscode-icons-12.0.1.vsix -o /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
||||
curl -#fSL https://open-vsx.org/api/vscode-icons-team/vscode-icons/12.4.0/file/vscode-icons-team.vscode-icons-12.4.0.vsix -o /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
||||
say "Installing 'vscode-icons' theme..." "Extension"
|
||||
install-extension /tmp/vscode-icons-team.vscode-icons-12.0.1.vsix
|
||||
say "Cleaning up 'vscode-icons' install files" "Extension"
|
||||
@ -202,16 +247,26 @@ function main() {
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for i in $@; do
|
||||
for i in "$@"; do
|
||||
if [[ "$1" == "-h" ]]; then
|
||||
showHelp
|
||||
exit 0
|
||||
elif [[ "$i" == "docker-cli" ]]; then
|
||||
instDockerCLI
|
||||
elif [[ "$i" == "dotnet" ]]; then
|
||||
instDotNet
|
||||
elif [[ "$i" == "golang" ]]; then
|
||||
instGoLang
|
||||
instGoLang "$2"
|
||||
elif [[ "$i" == "nodejs" ]]; then
|
||||
instNodeJs
|
||||
if [[ "$2" == "--legacy" ]]; then
|
||||
sayW "Installing NodeJS with legacy function" "Arkanum"
|
||||
instNodeJs
|
||||
else
|
||||
instVolta
|
||||
instNodeJS2
|
||||
fi
|
||||
elif [[ "$i" == "volta" ]]; then
|
||||
instVolta
|
||||
elif [[ "$i" == "powershell" ]]; then
|
||||
instPwsh
|
||||
elif [[ "$i" == "gitea" ]]; then
|
||||
@ -233,4 +288,4 @@ function main() {
|
||||
done
|
||||
}
|
||||
|
||||
main $@
|
||||
main "$@"
|
||||
|
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
complete -W "--disable-motd --install-extensions --reset-codesetting dotnet gitea golang nodejs powershell -h" arkanum
|
||||
complete -W "--disable-motd --install-extensions --reset-codesetting docker-cli dotnet gitea golang nodejs volta powershell -h" arkanum
|
||||
|
@ -59,6 +59,9 @@ symbol = " "
|
||||
[package]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
disabled = true
|
||||
|
||||
[rust]
|
||||
symbol = " "
|
||||
|
||||
|
Reference in New Issue
Block a user