generated from Templates/Baseline
Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
1ed6a4a7d5 | |||
78c91dceba | |||
c55408b4b3 | |||
c6e65b7782 | |||
33f8bc90c0 | |||
8c9c9e5138 | |||
5922aabe3d | |||
a25b231654 | |||
330f852e56 | |||
dba751f036 | |||
88612ad71c | |||
6d2e8fb05f | |||
859eb479c5 | |||
e648c50c62 | |||
903478f746 | |||
7a1b293188 | |||
88d228ad07 | |||
40684f5a3b | |||
6931ca6baf |
@ -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
|
||||
|
@ -24,7 +24,7 @@ pipeline:
|
||||
triggerPortainer:
|
||||
image: ocram85/portainer-serviceupdate
|
||||
settings:
|
||||
#VERBOSE: true
|
||||
VERBOSE: true
|
||||
URI: "https://portainer.ocram85.com"
|
||||
TOKEN:
|
||||
from_secret: NEXT_TOKEN
|
||||
|
@ -1,22 +0,0 @@
|
||||
pipeline:
|
||||
DockerBaseImage:
|
||||
image: renovate/renovate:34.77-slim
|
||||
commands:
|
||||
- "renovate"
|
||||
secrets:
|
||||
- RENOVATE_TOKEN
|
||||
environment:
|
||||
#LOG_LEVEL: debug
|
||||
RENOVATE_PLATFORM: "gitea"
|
||||
RENOVATE_ENDPOINT: "https://gitea.ocram85.com"
|
||||
RENOVATE_REPOSITORIES: "${CI_REPO}"
|
||||
RENOVATE_LABELS: "renovate"
|
||||
#RENOVATE_DRY_RUN: "full"
|
||||
RENOVATE_TOKEN: "${RENOVATE_TOKEN}"
|
||||
RENOVATE_GITHUB_TOKEN_WARN: "false"
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- master
|
||||
- updDeps
|
38
CHANGELOG.md
38
CHANGELOG.md
@ -35,7 +35,7 @@
|
||||
* Add woodpecker manager in renovate-bot (#14)
|
||||
* fixes logo file path (#8)
|
||||
* Adds basic container setup with pipeline (#1)
|
||||
|
||||
|
||||
## [v0.1.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.1) - 2023-01-02
|
||||
|
||||
* 📦 BUILD
|
||||
@ -45,3 +45,39 @@
|
||||
* fix renovate config keys (#34)
|
||||
* Update renovate/renovate Docker tag to v34.62 (#33)
|
||||
* Update renovate/renovate Docker tag to v34.57 (#32)
|
||||
|
||||
## [v0.2.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.2.0) - 2023-01-04
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* fix typo (#39)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Add proxy support (#38)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update renovate/renovate Docker tag to v34.82 (#37)
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.9.1 (#31)
|
||||
|
||||
## [v0.3.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.3.0) - 2023-03-30
|
||||
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Add tea cli in gitea block (#41)
|
||||
* 📦 BUILD
|
||||
* Remove repo defined renovate (#44)
|
||||
* 🤖 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.8.3
|
||||
FROM quay.io/linuxserver.io/code-server:4.14.1
|
||||
|
||||
#LABEL build_version=""
|
||||
LABEL maintainer="OCram85"
|
||||
|
22
README.md
22
README.md
@ -34,7 +34,9 @@ You can download the image from the gitea embedded container registry: `gitea.oc
|
||||
|
||||
- `latest` - Is based on the lasted master branch commit.
|
||||
- `next` - Is a test build based on the pull request
|
||||
- `1`, `0.1`, `0.1.0` - tag based version. See [packages page](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) for available tags.
|
||||
- `1`, `0.1`, `0.1.0` - tag based version.
|
||||
|
||||
> **💡 NOTE: See the [packages page](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) for latest version and all other available tags.**
|
||||
|
||||
### 2.a Run as Docker Swarm Stack
|
||||
|
||||
@ -53,7 +55,7 @@ Therefore you need
|
||||
version: "3.8"
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.0.1
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
@ -75,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
|
||||
@ -104,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.0.1
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.4.0
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
@ -171,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.
|
||||
@ -216,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
|
||||
|
113
arkanum
113
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,22 +50,52 @@ 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 apt-get update > /dev/null
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get update > /dev/null
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
libicu70
|
||||
|
||||
say "Downloading latest install script..." "dotnet"
|
||||
curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
||||
curl -#fSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
||||
chmod +x /tmp/dotnet-install.sh
|
||||
|
||||
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"
|
||||
sudo apt-get clean
|
||||
sudo -E apt-get clean
|
||||
sudo rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
@ -73,16 +105,17 @@ function instDotNet() {
|
||||
|
||||
function instGoLang() {
|
||||
if [[ -z "$1" ]]; then
|
||||
GOVERSION="1.19.3"
|
||||
GOVERSION="1.20.6"
|
||||
else
|
||||
GOVERSION="$1"
|
||||
fi
|
||||
|
||||
say "Downloading golang ($GOVERSION)..." "GoLang"
|
||||
curl -fsSL "https://go.dev/dl/go$GOVERSION.linux-amd64.tar.gz" -o /tmp/golang.tar.gz
|
||||
curl -#fSL "https://go.dev/dl/go$GOVERSION.linux-amd64.tar.gz" -o /tmp/golang.tar.gz
|
||||
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
|
||||
@ -92,13 +125,13 @@ function instGoLang() {
|
||||
|
||||
function instNodeJs() {
|
||||
say "Adding nodesource package source (NodeJS LTS)..." "NodeJs"
|
||||
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
||||
curl -#fSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
||||
say "Updating package lists and installing NodeJS LTS..." "NodeJs"
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
nodejs
|
||||
|
||||
say "Cleaning up..." "NodeJs"
|
||||
sudo apt-get clean
|
||||
sudo -E apt-get clean
|
||||
sudo rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
@ -107,32 +140,54 @@ 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 apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
apt-transport-https \
|
||||
software-properties-common
|
||||
|
||||
say "Adding powershell package sources..." "PowerShell"
|
||||
# Download the Microsoft repository GPG keys
|
||||
curl -fsSL "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -o /tmp/packages-microsoft-prod.deb
|
||||
curl -#fSL "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" -o /tmp/packages-microsoft-prod.deb
|
||||
# Register the Microsoft repository GPG keys
|
||||
sudo dpkg -i /tmp/packages-microsoft-prod.deb
|
||||
# Update the list of packages after we added packages.microsoft.com
|
||||
sudo apt-get update
|
||||
sudo -E apt-get update
|
||||
|
||||
say "Installing PowerShell..." "PowerShell"
|
||||
# Install PowerShell
|
||||
sudo apt-get install --no-install-recommends -y powershell
|
||||
sudo -E apt-get install --no-install-recommends -y powershell
|
||||
|
||||
say "done." "PowerShell"
|
||||
}
|
||||
|
||||
function instGiteaTools() {
|
||||
TEA_VERSION="0.9.0"
|
||||
CHANGELOG_VERSION="main"
|
||||
say "Installing Gitea tools..." "Gitea"
|
||||
sudo curl -fsSL https://dl.gitea.io/changelog-tool/main/changelog-main-linux-amd64 -o /usr/bin/changelog
|
||||
|
||||
say "Downloading 'changelog' ($CHANGELOG_VERSION)..." "Gitea"
|
||||
sudo -E curl -#fSL "https://dl.gitea.io/changelog-tool/$CHANGELOG_VERSION/changelog-$CHANGELOG_VERSION-linux-amd64" -o /usr/bin/changelog
|
||||
sudo chmod +x /usr/bin/changelog
|
||||
say "'changelog' command installed." "Gitea"
|
||||
|
||||
say "Downloading 'tea' ($TEA_VERSION)..." "Gitea"
|
||||
sudo -E curl -#fSL https://dl.gitea.io/tea/$TEA_VERSION/tea-$TEA_VERSION-linux-amd64 -o /usr/bin/tea
|
||||
sudo chmod +x /usr/bin/tea
|
||||
say "'tea' command installed." "Gitea"
|
||||
|
||||
say "done." "Gitea"
|
||||
}
|
||||
|
||||
@ -140,15 +195,15 @@ function instCodeExtension() {
|
||||
say "Downloading required extensions...." "Extension"
|
||||
# Gitlens
|
||||
say "Downloading 'gitlens'..." "Extension"
|
||||
curl -fsSL 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"
|
||||
rm -f /tmp/eamodio.gitlens-13.1.1.vsix
|
||||
|
||||
# OneDarkPro
|
||||
say "Downloading 'One Dark Pro' theme..." "V"
|
||||
curl -fsSL 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
|
||||
say "Downloading 'One Dark Pro' theme..." "Extension"
|
||||
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"
|
||||
@ -156,7 +211,7 @@ function instCodeExtension() {
|
||||
|
||||
# vscode-icons
|
||||
say "Downloading 'vscode-icons' theme..." "Extension"
|
||||
curl -fsSL 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"
|
||||
@ -192,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
|
||||
@ -223,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