Compare commits

...

142 Commits

Author SHA1 Message Date
f3797b5660
Removing feature to persist session since is not possible because OAuth process of github.
Some checks failed
Build and Push Docker Image ARM64 / docker (push) Failing after 3m19s
2025-04-14 16:46:35 +00:00
a1e53a6624
Trying to fix issue of recreate the tunnel.
Some checks failed
Build and Push Docker Image ARM64 / docker (push) Failing after 3m14s
2025-04-14 01:13:35 +00:00
3da90aa1a4
Fixing typo. 2025-04-14 00:06:02 +00:00
aa9afba282
Trying to fix existing tunnel. 2025-04-13 23:44:58 +00:00
0fe46e635d
Trying to fix issue if data authentication already exist.
Some checks failed
Build and Push Docker Image ARM64 / docker (push) Failing after 1m52s
2025-04-13 04:27:21 +00:00
d84caeb8cf
Trying to fix issue when restart. 2025-04-13 03:57:47 +00:00
68e7aa99d8
Trying to fix issue when restart. 2025-04-13 03:30:11 +00:00
8d5deeeef0
Updating version of vscode and adding feature to restart.
Some checks failed
Build and Push Docker Image ARM64 / docker (push) Failing after 1m27s
2025-04-13 00:51:32 +00:00
0c8c0d1068
Updating vscode version.
Some checks failed
Build and Push Docker Image ARM64 / docker (push) Failing after 14m39s
2025-03-07 00:02:34 +00:00
fc0c473ce4
Updating vscode version
Some checks failed
Build and Push Docker Image ARM64 / docker (push) Failing after 2m53s
2025-02-19 20:04:53 +00:00
521c51314a
Updating version of vscode. Updating to version 3.1.17 2024-12-17 15:47:33 +00:00
23b4140fc5
Updating version of vscode. 2024-11-19 15:08:35 +00:00
a4e9a02d87
Updating version of vscode. 2024-11-01 10:47:10 -06:00
6fb7085164
Updating version to version 3.1.14 2024-10-03 20:08:51 +00:00
5754ef90a2
Merge branch 'master' of github.com:aleleba/aleleba-vscode-dockerfile-configuration 2024-10-03 20:06:17 +00:00
3b99e2546f
Fixing github actions workflow. Updating to version 3.1.13 2024-09-10 14:59:04 -06:00
8ee5f0376f
Trying to fix issue, updating to version 3.1.12 2024-09-10 14:46:28 -06:00
b676e5245c
Trying to fix build errors. Updating to version 3.1.11 2024-09-10 14:40:24 -06:00
aa71cb3be5
Trying to fix build issues. updating to version 3.1.10 2024-09-10 14:33:03 -06:00
40a58d6a85
Triying to fix issue on building. Updating to version 3.1.9 2024-09-10 13:59:32 -06:00
54c7bd3365
Trying to fix dockerfile on building. Updating to version 3.1.8 2024-09-10 13:43:52 -06:00
862baf44b7
Trying to fix builder of github actions issue. Updating to version 3.1.7 2024-09-10 13:38:03 -06:00
1b4baca42c
Updating version of vscode. Updating to version 3.1.6 2024-09-10 12:10:04 -06:00
3e130f4bf0
Updating version of vscode. Updating to version 3.1.5 2024-08-02 11:10:23 -06:00
4c16938db3
Updating docs. Updating to version 3.1.4 2024-06-15 23:58:09 -06:00
cd7181d6ec
Updating the latest version of vscode. Updting to version 3.1.3 2024-06-11 10:31:02 -06:00
819e72324c
Updating to new version of vscode. Updating to version 3.1.3. 2024-06-11 16:21:24 +00:00
183e04cde2
Update permissions for SSH files and increment version number to 3.1.2 2024-04-24 22:17:32 +00:00
b33c4cbbe6
Fixing permissions on .ssh directory. Update to version 3.1.1 2024-04-24 12:47:13 -06:00
974914126f
Adding all responsability to deploy to both platforms to github actions. Adding officially support to multiarch. Updating to version 3.1.0 2024-04-24 12:26:58 -06:00
ae16a7be7f
Trying to fix architecture issue. Updating to version 3.0.40 2024-04-24 12:12:26 -06:00
998701be6c
Trying to fic issue with building process. Updating to version 3.0.39 2024-04-24 11:58:07 -06:00
b30b350fe4
Trying to build with github actions the building of arm arch. updating to version 3.0.38 2024-04-24 11:37:47 -06:00
1b278e0eea
Adding hooks to multiarch building. Updating to version 3.0.37 2024-04-24 11:17:06 -06:00
e88ab12701
Update permissions for .ssh folder and increment version number to 3.0.36 2024-04-21 11:55:35 +00:00
694039fb29
Update entrypoint.sh and version.txt to version 3.0.35 2024-04-21 11:39:37 +00:00
8ffbd5d818
Update entrypoint.sh and version.txt to version 3.0.34 2024-04-21 06:55:40 +00:00
c2f5311948
Update ownership of user's home directory and increment version number to 3.0.33 2024-04-21 01:24:57 +00:00
f91d1c56a1
Update entrypoint.sh and version.txt Updating to version 3.0.32 2024-04-19 15:50:09 +00:00
42b7bd30e7
Update Node.js installation script on readmefile and increment version number to 3.0.31 2024-04-19 14:47:49 +00:00
0f51996adc
Update entrypoint.sh and readme.md files Updating to version 3.0.30 2024-04-19 14:31:21 +00:00
8dea73ec95
Move .bashrc and .profile files to user's home directory, update version to 3.0.29 2024-04-19 11:42:39 +00:00
8b71265807
Update readme.md and version.txt Updating to version 3.0.28 2024-04-19 08:28:53 +00:00
d9df63f836
Update entrypoint.sh and version.txt Updating to version 3.0.27 2024-04-19 07:49:00 +00:00
c9799b9a77
Update script execution in entrypoint.sh and bump version to 3.0.26 2024-04-19 06:38:38 +00:00
de3fda3c09
Update environment and version to 3.0.25 2024-04-18 06:37:34 +00:00
559cd39a66
Update entrypoint.sh and version.txt Updating to version 3.0.24 2024-04-18 05:40:21 +00:00
4bbe7f51cb
Update environment variable handling and version number to 3.0.23 2024-04-18 05:22:53 +00:00
b0b9497107
Update entrypoint.sh and version.txt Updating to version 3.0.22 2024-04-18 05:07:52 +00:00
1631237881
Update entrypoint.sh and version.txt Updating to version 3.0.21 2024-04-18 04:32:59 +00:00
6a6947d855
Move .bashrc and .profile files to user's home directory Updating to version 3.0.20 2024-04-17 21:52:11 +00:00
65644a8b14
Fix ownership issues in entrypoint.sh and update version to 3.0.19 Updating to version 3.0.19 2024-04-17 20:59:45 +00:00
03b01cbae3
Update entrypoint.sh and version.txt Updating to version 3.0.18 2024-04-17 20:45:13 +00:00
b5c8652d94
Update user creation and version number. Updating to version 17 2024-04-17 19:30:31 +00:00
9f101b45cc
Update entrypoint.sh and version.txt Updating to version 3.0.16 2024-04-17 18:59:23 +00:00
89fd905384
Update LS_COLORS_VALUE and version.txt Updating to version 3.0.15 2024-04-16 04:28:23 +00:00
ac320909ab
Update entrypoint.sh and version.txt . Updating to version 3.0.14 2024-04-16 04:01:48 +00:00
ab2bdc80a6
Update LS_COLORS variable and install extensions. Updating to version 3.0.13 2024-04-16 02:42:12 +00:00
6f1beacbd0
Update LS_COLORS variable and increment version to 3.0.12 2024-04-15 17:22:19 +00:00
b7d52df70b
Trying to fix issue. updating to version 3.0.11 2024-04-15 08:02:20 +00:00
5dbb07fd80
Trying to fix issue. Updating to version 3.0.10 2024-04-15 06:36:28 +00:00
3f6a9f6626
Updating to version 3.0.9 2024-04-15 05:59:09 +00:00
13e642be86
Trying to fix issue of .vscode directory. Updating to version 3.0.8 2024-04-15 05:06:13 +00:00
ba267c2494
Trying to fix issue of .bashrc not exist. Updating to version 3.0.7 2024-04-15 04:33:36 +00:00
67cc921484
Trying to fix environment user issue. Updating to version 3.0.6 2024-04-15 04:17:13 +00:00
15de59c6e7
Trying to fix sexond issue with the same variable. Updating to version 3.0.5 2024-04-15 03:41:28 +00:00
7bf78c1935
Fixing the second issue of the same variable. Updating to version. 3.0.4 2024-04-15 03:23:49 +00:00
e2ba0edd34
Trying to fix Environment variable VSCODETUNNERNAME error. Updating to version 3.0.3 2024-04-15 03:07:36 +00:00
e74fb7d054
Trying to fix the Environment VSCODE NAME TUNNEL issue. Updating to version 3.0.2 2024-04-15 02:40:38 +00:00
b027cd07a0
Fixing the TUNNEL_NAME issue. Updating to version 3.0.1 2024-04-15 01:55:12 +00:00
66ed2b4950
Making Breaking changes to use custom bash scripts. Updating to version 3.0.0 2024-04-14 22:50:55 +00:00
d596af8a2f
Trying to fix missing environment variables for root user. Updating to version 2.0.58 2024-04-12 10:28:23 +00:00
680e3810b6
Trying to fix issue of running entrypont.sh as root. Updating to version 2.0.57 2024-04-12 08:47:28 +00:00
6519cc3ef9
Trying to fix issue of running entrypont.sh as root. Updating to version 2.0.56 2024-04-12 08:42:37 +00:00
c27e148488
Trying to fix vscode issue. Updating to version 2.0.55 2024-04-12 07:42:57 +00:00
cd8b5c19e1
Trying to fix issue with vscode user deletion. updating to version 2.0.54 2024-04-12 05:38:00 +00:00
a6e4296f25
Trying to fix issue when deleting vscode user. Updating to version 2.0.53 2024-04-12 04:59:14 +00:00
08cf40624d
Trying to fix issue of deleting vscode user. Updating to version 2.0.52 2024-04-12 04:06:17 +00:00
a3b5fe1d6d
Trying to fix home variable. Updating to version 2.0.51 2024-04-12 03:18:12 +00:00
99812ff71c
Trying to fix error of deleting vscode user. Updating to version 2.0.50 2024-04-12 02:05:26 +00:00
d8a8162ffd
Making the latest changes Updating to version 2.0.49 2024-04-11 23:17:23 +00:00
32d405aa80
Deleting vscode user when ${HOME_USER} exist. Updating to version 2.0.48 2024-04-11 22:30:56 +00:00
2a98fcce78
Trying to fix issue. Updating to version 2.0.47 2024-04-11 20:29:41 +00:00
3ab91f9f5f
Trying to fix issue. Updating to version 2.0.46 2024-04-11 04:45:09 +00:00
840fdfaf1e
Trying to fix issue. Updating to version 2.0.45 2024-04-10 12:24:50 +00:00
f7a5094cc3
Trying to fix issue. Updating to version 2.0.44 2024-04-10 11:38:24 +00:00
22f0003c53
Trying to fix issue. Updating to version 2.0.43 2024-04-10 10:24:03 +00:00
b08429c9ae
Fixing permissions of tunnel. Updating to version 2.0.42 2024-04-10 09:35:28 +00:00
7f81f891ab
Trying to fix issue. Updating to version 2.0.41 2024-04-10 08:49:31 +00:00
66c96f1fe7
Fixing issue of sed. Updating to version 2.0.40 2024-04-10 08:03:53 +00:00
1e5523c1f7
Fixing errors of user. Updating to version 2.0.39 2024-04-10 07:24:41 +00:00
390f9cdc15
Trying to fix issue with environment variables. Updating to version 2.0.38 2024-04-10 06:34:01 +00:00
f9503fe827
Trying to fix user. Updating to version 2.0.37 2024-04-10 06:23:37 +00:00
c50b9e969f
Trying to fix user PATH issue. Updating to version 2.0.36 2024-04-10 02:17:37 +00:00
f9b4e4644a
Changing the way is login the HOME_USER. Updating to version 2.0.35 2024-04-10 01:10:43 +00:00
01410a3ccd
Cleaning code and fixing vscode user not working. Updating to version. 2.0.34 2024-04-09 21:47:37 +00:00
cb4bf58db9
Fixing issue of permissions on /home/${HOME_USER} directory. Updating to version 2.0.32 2024-04-09 20:46:54 +00:00
ed98e9a48c
Fixing colors of Terminal and entrances of HOME_USER in .bashrc. Updating to version 2.0.31 2024-04-09 20:06:56 +00:00
2ab5fcffc7
Trying to fix user issue. Updating to version 2.0.30 2024-04-09 03:50:29 +00:00
c1acddcc6e
Trying to fix issue in user. updating to version 2.0.29 2024-04-09 03:07:15 +00:00
a9b021cebe
Trying to fix issue. updating to version 2.0.28 2024-04-09 01:56:06 +00:00
fd7e35cf34
Trying to fix user issue. Updating version to 2.0.27 2024-04-09 01:04:04 +00:00
f929aaac63
Trying to fix user issue. Updating to version 2.0.26 2024-04-09 00:21:44 +00:00
c1affb8781
making reverse of the changes. Updating to version 2.0.25 2024-04-08 21:31:42 +00:00
dfeddf9688
Updating package updating to version 2.0.24 2024-04-07 04:20:07 +00:00
fe2a226190
Trying to fix issue. Updating to version 2.0.23 2024-04-06 23:49:46 +00:00
a983adf4ad
Se quita la parte del usuario de Home user para solo ejecutar el primer comando de inicializacion. Se sube a version 2.0.22 2024-04-06 22:51:29 +00:00
374d13fe6c
Trying to fix. updating to version 2.0.21 2024-04-06 01:58:10 +00:00
d4391139b2
Trying to fix issue. Updating to version 2.0.20 2024-04-06 01:09:50 +00:00
13571867ca
Trying to fix users issue updating to version 2.0.19 2024-04-05 23:44:48 +00:00
52b9e7a411
Trying to fix users issue. Updating to version 2.0.18 2024-04-05 21:03:19 +00:00
04e26f2afc
Trying to fix issue. Updating to version 2.0.17 2024-03-30 04:56:24 +00:00
dddaf129f4
Trying to fix. Updating to version 2.0.16 2024-03-30 03:15:32 +00:00
6525dc4c7e
Trying to fix issue. updating to version 2.0.15 2024-03-30 01:28:33 +00:00
b3609b3d0b
Trying to fix adding environment variables to app. 2024-03-29 22:35:02 +00:00
dd283a2c5f
Adding the environment variables of vscode to home user. Updating to version 2.0.13 2024-03-19 19:50:04 +00:00
18fe10675c
Updating version to version 2.0.12 and trying to fix isuue. 2024-03-05 22:23:30 +00:00
aabc21eac2
Trying to fix the issue. Updating to version 2.0.11 2024-03-05 20:47:59 +00:00
50708112ac
Trying to fix again the issue. Updating to version 2.0.10 2024-03-05 20:02:48 +00:00
f29f99181e Trying to fix. Updatin to version 2.0.9 2024-02-15 23:27:33 +00:00
8e9ef7bfa9 Trying to fix issue. updating to version 2.0.8 2024-02-15 20:18:50 +00:00
762ff44dc8 Fixing sudo issue. 2024-02-15 18:56:28 +00:00
ac7a82f0ca Trying to fix issue. Updating to version 2.0.6 2024-02-15 18:41:29 +00:00
9bac2433a6 Trying to fix. Updating to version 2.0.5 2024-02-15 06:23:40 +00:00
d8a291c82d Trying to fix. Version 2.0.4 2024-02-15 04:07:06 +00:00
3cee54d519 Trying to fix it. 2.0.3 2024-02-15 03:50:50 +00:00
f68ef82de3 Trying to make fix, updating to version 2.0.2 2024-02-15 03:21:00 +00:00
47d6a61a28 Trying to fix user error. Updating to version 2.0.1 2024-02-15 01:44:59 +00:00
b5cbdca7ef Trying to fix user configuration. Updating to version 2.0.0 2024-02-15 01:05:41 +00:00
68bdbd4c61 Trying to fix issue. Updating to version 1.1.6 2024-02-14 21:32:17 +00:00
a164ccadff trying to make user dynamic. 2024-02-14 21:15:23 +00:00
d755728ed8 Returning to the working configuration. Updating to version 1.1.4 2024-02-14 18:48:08 +00:00
c17566fd5f Trying to fix the creation of the user, updating to version 1.1.3 2024-02-14 17:51:26 +00:00
f9351861bd Updating entrypoint.sh updating to version 1.1.2 2024-02-14 16:55:47 +00:00
1634a2a507 Fixing typo. Updating to version 1.1.1 2023-09-01 18:11:04 +00:00
8bda7b330b Changing the extensions.json structure to have more order. Updating to version 1.1.0 2023-09-01 17:07:46 +00:00
e1245da9de Adding Readme file. Updating to version 1.0.25. 2023-08-30 19:56:08 +00:00
8d86fd2f5d Fixing typo. Updating to version 1.0.24 2023-08-30 03:55:28 +00:00
f5a6331fd3 Trying to fix the instalation of extensions. Updating to version 1.0.22 2023-08-29 19:39:54 +00:00
8676e1bcb3 Trying to fix the instalation of extensions. Updating to version 1.0.22 2023-08-29 18:31:12 +00:00
52d6bc12f4 Trying to fix the instalation of extensions. Updating to version 1.0.21 2023-08-29 17:15:51 +00:00
fdcea0d423 Fixing typo. updating to version 1.0.20 2023-08-29 16:17:01 +00:00
7 changed files with 528 additions and 29 deletions

118
.bashrc Normal file
View File

@ -0,0 +1,118 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
export LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"

30
.github/workflows/main-workflow.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Build and Push Docker Image ARM64
on:
push:
branches: [ master ]
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: aleleba/vscode:latest
platforms: linux/amd64,linux/arm64

27
.profile Normal file
View File

@ -0,0 +1,27 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi

View File

@ -1,8 +1,7 @@
FROM ubuntu:22.04
# Update the package list, install sudo, create a non-root user, and grant password-less sudo permissions
RUN apt update
RUN apt install -y sudo
RUN apt update && apt install -y sudo
RUN sudo apt-get update
#Instalando Curl
@ -12,6 +11,16 @@ RUN sudo apt-get install -y wget
#Instalando jq
RUN sudo apt-get install -y jq
RUN sudo apt-get update
RUN sudo apt-get install -y dumb-init
RUN ARCH="$(dpkg --print-architecture)" \
&& curl -fsSL "https://github.com/boxboat/fixuid/releases/download/v0.6.0/fixuid-0.6.0-linux-${ARCH}.tar.gz" | tar -C /usr/local/bin -xzf - \
&& chown root:root /usr/local/bin/fixuid \
&& chmod 4755 /usr/local/bin/fixuid \
&& mkdir -p /etc/fixuid \
&& printf "user: vscode\ngroup: vscode\n" > /etc/fixuid/config.yml
#Instalando devtunnel
#Comandos que no se deben olvidar correr al crear el devtunnel
#devtunnel user login -g -d
@ -19,18 +28,24 @@ RUN sudo apt-get install -y jq
RUN curl -sL https://aka.ms/DevTunnelCliInstall | bash
#Instalando VSCode
RUN sudo apt-get update && sudo apt-get install -y gnupg2
RUN sudo apt-get install -y software-properties-common
RUN sudo wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
RUN sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
RUN sudo apt update
RUN sudo apt install code -y
RUN ARCH="$(dpkg --print-architecture)" \
&& sudo apt-get update \
&& sudo apt-get install -y gnupg2 \
&& sudo apt-get install -y software-properties-common \
&& sudo wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - \
&& sudo add-apt-repository "deb [arch=${ARCH}] https://packages.microsoft.com/repos/vscode stable main" \
&& sudo apt-get update \
&& sudo DEBIAN_FRONTEND=noninteractive apt-get install -y code
#Making home writteable
#Making home writable
RUN sudo chmod -R a+rwX /home
RUN sudo sysctl -w fs.inotify.max_user_watches=524288
ADD ./.bashrc /usr/bin/.bashrc
RUN sudo chmod +x /usr/bin/.bashrc
ADD ./.profile /usr/bin/.profile
RUN sudo chmod +x /usr/bin/.profile
ADD ./entrypoint.sh /usr/bin/entrypoint.sh
RUN sudo chmod +x /usr/bin/entrypoint.sh

159
entrypoint.sh Normal file → Executable file
View File

@ -1,43 +1,164 @@
#!/bin/bash
if [[ -z "${HOME_USER}" ]]; then
set -eu
if [[ -z "${HOME_USER-}" ]]; then
HOME_USER="vscode"
fi
addgroup nonroot
adduser --disabled-password --gecos "" ${HOME_USER}
echo "${HOME_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
if ! grep -q "HOME_USER=" /etc/environment; then
sudo bash -c "echo HOME_USER=$HOME_USER >> /etc/environment"
fi
if [[ -v VSCODE_TUNNEL_NAME && -n "${VSCODE_TUNNEL_NAME}" ]]; then
if ! grep -q "VSCODE_TUNNEL_NAME=" /etc/environment; then
sudo bash -c "echo VSCODE_TUNNEL_NAME=$VSCODE_TUNNEL_NAME >> /etc/environment"
fi
fi
# List all environment variables
printenv |
# Filter variables that start with GLOBAL_ENV_
grep -E '^GLOBAL_ENV_' |
# Exclude GLOBAL_ENV_HOME_USER and GLOBAL_ENV_VSCODE_TUNNEL_NAME
grep -vE '^(GLOBAL_ENV_HOME_USER|GLOBAL_ENV_VSCODE_TUNNEL_NAME)=' |
# Remove the GLOBAL_ENV_ prefix
sed 's/^GLOBAL_ENV_//' |
# Append the result to /etc/environment if not already present
while IFS= read -r line
do
if ! grep -q "^${line%=*}=" /etc/environment; then
echo "" >> /etc/environment
echo "export $line" >> /etc/environment
fi
done
# List all environment variables
printenv |
# Filter variables that start with USER_ENV_
grep -E '^USER_ENV_' |
# Remove the USER_ENV_ prefix
sed 's/^USER_ENV_//' |
# Append the result to /usr/bin/.bashrc
while IFS= read -r line
do
# Check if the current user is root
if [ "$(id -u)" = "0" ]; then
echo "" >> /usr/bin/.bashrc
echo "export $line" >> /usr/bin/.bashrc
else
echo "" >> /home/${HOME_USER}/.bashrc
echo "export $line" >> /home/${HOME_USER}/.bashrc
fi
done
USER="$HOME_USER"
if ! id -u $HOME_USER > /dev/null 2>&1; then
sudo adduser --disabled-password --gecos "" --uid 1000 ${HOME_USER}
sudo echo "$HOME_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null
# Creating .vscode folder if it doesn't exist
if [ ! -d "/home/${HOME_USER}/.vscode" ]; then
sudo mkdir -p /home/${HOME_USER}/.vscode
fi
# Changing the property of the directory /home/${HOME_USER}/.vscode
sudo chown -R ${HOME_USER} /home/${HOME_USER}/.vscode
fi
# Then execute entrypoint.sh
if [ "$HOME_USER" != "$(whoami)" ]; then
exec sudo -u $HOME_USER bash -c "source /etc/environment; /usr/bin/entrypoint.sh"
else
sudo chown -R ${HOME_USER} /home/${HOME_USER}
if [ -d "/home/${HOME_USER}/.ssh" ]; then
sudo chmod 755 /home/${HOME_USER}/.ssh
sudo chmod -R 600 /home/${HOME_USER}/.ssh/*
# Check if any .pub files exist in the .ssh directory
for file in /home/${HOME_USER}/.ssh/*.pub; do
if [ -f "$file" ]; then
sudo chmod 644 "$file"
fi
done
# Check if the known_hosts file exists in the .ssh directory
if [ -f "/home/${HOME_USER}/.ssh/known_hosts" ]; then
sudo chmod 644 /home/${HOME_USER}/.ssh/known_hosts
fi
fi
fi
# Move the .bashrc file to the user's home directory if it doesn't exist
if [ ! -f "/home/${HOME_USER}/.bashrc" ]; then
sudo mv /usr/bin/.bashrc /home/${HOME_USER}/.bashrc
sudo chown ${HOME_USER} /home/${HOME_USER}/.bashrc
else
sudo rm -f /usr/bin/.bashrc
fi
# Move the .profile file to the user's home directory if it doesn't exist
if [ ! -f "/home/${HOME_USER}/.profile" ]; then
sudo mv /usr/bin/.profile /home/${HOME_USER}/.profile
sudo chown ${HOME_USER} /home/${HOME_USER}/.profile
else
sudo rm -f /usr/bin/.profile
fi
# Find .sh files in /usr/bin/custom-scripts and execute them in order
for script in $(find /usr/bin/custom-scripts -name "*.sh" | sort); do
chmod +x $script
if [[ $script == *"sudo"* ]]; then
sudo -u $HOME_USER bash -c "source /etc/environment; sudo $script"
else
sudo -u $HOME_USER bash -c "source /etc/environment; $script"
fi
done
#Creating extensions folder
sudo mkdir /home/${HOME_USER}/.vscode-server
if [ ! -d "/home/${HOME_USER}/.config/Code" ]; then
sudo mkdir -p /home/${HOME_USER}/.config/Code
fi
sudo chmod -R a+rwX /home/${HOME_USER}/.config/Code
if [ ! -d "/home/${HOME_USER}/.vscode-server" ]; then
sudo mkdir -p /home/${HOME_USER}/.vscode-server
fi
sudo chmod -R a+rwX /home/${HOME_USER}/.vscode-server
code --extensions-dir /home/${HOME_USER}/.vscode-server
if [ ! -d "/home/${HOME_USER}/.vscode-server-insiders" ]; then
sudo mkdir -p /home/${HOME_USER}/.vscode-server-insiders
fi
sudo chmod -R a+rwX /home/${HOME_USER}/.vscode-server-insiders
# Check if the data.json file exists
if [ -f "/home/extensions.json" ]; then
# Read the JSON file into a variable
jsonExtensions=$(cat /home/extensions.json)
# Use jq to extract the array elements
extensions=$(echo $jsonExtensions | jq -r '.[]')
# Use jq to extract the extension parameter from the JSON array
extensions=$(echo $jsonExtensions | jq -r '.[].extensionsGroup.extensions[].uniqueIdentifier')
# Loop through the extensions and process each element
for extension in $extensions; do
echo "Installing extension: $extension"
sudo su - ${HOME_USER} -c "code --install-extension $extension --extensions-dir "
sudo su ${HOME_USER} -c "code --install-extension $extension"
done
#sudo mkdir /home/${HOME_USER}/.vscode-server
#sudo mkdir /home/${HOME_USER}/.vscode-server-insiders
#sudo cp -R /home/${HOME_USER}/.vscode/* /home/${HOME_USER}/.vscode-server
#sudo cp -R /home/${HOME_USER}/.vscode/* /home/${HOME_USER}.vscode-server-insiders
#sudo chmod -R a+rwX /home/${HOME_USER}/.vscode
#sudo chmod -R a+rwX /home/${HOME_USER}/.vscode-server
#sudo chmod -R a+rwX /home/${HOME_USER}/.vscode-server-insiders
sudo cp -R /home/${HOME_USER}/.vscode/* /home/${HOME_USER}/.vscode-server
sudo cp -R /home/${HOME_USER}/.vscode/* /home/${HOME_USER}/.vscode-server-insiders
sudo chmod -R a+rwX /home/${HOME_USER}/.vscode
sudo chmod -R a+rwX /home/${HOME_USER}/.vscode-server
sudo chmod -R a+rwX /home/${HOME_USER}/.vscode-server-insiders
else
echo "File extensions.json not found"
fi
if [[ -z "${VSCODE_TUNNEL_NAME}" ]]; then
sudo su - ${HOME_USER} -c "code tunnel --accept-server-license-terms"
if [[ -v VSCODE_TUNNEL_NAME && -n "${VSCODE_TUNNEL_NAME}" ]]; then
sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms --name ${VSCODE_TUNNEL_NAME}"
else
sudo su - ${HOME_USER} -c "code tunnel --accept-server-license-terms --name ${VSCODE_TUNNEL_NAME}"
sudo su ${HOME_USER} -c "code tunnel --accept-server-license-terms"
fi

188
readme.md Normal file
View File

@ -0,0 +1,188 @@
# Aleleba VSCode Dockerfile Configuration
This repository contains a Dockerfile configuration for use with Visual Studio Code with dev tunnel.
## Getting Started
To run the Docker container, follow these steps:
1. Clone this repository to your local machine.
2. Open the integrated terminal in Visual Studio Code.
3. Run the Docker container by running the following command: `docker run -it -e HOME_USER=custom-home-user -e VSCODE_TUNNEL_NAME=vscode-ssh-remote-server -v /path/to/extensions.json:/home/extensions.json aleleba/vscode`
### Environment Variables
The following environment variables can be set when running the Docker container:
- `HOME_USER`: The username of the user running the container. This is used to set the correct permissions on files created in the container.
- `VSCODE_TUNNEL_NAME`: The name of the SSH tunnel used by Visual Studio Code to connect to the container.
### Custom Environment Variables
You can set custom environment variables for the `HOME_USER` by using the `USER_ENV_` prefix when running the Docker container. These environment variables will be created in the `/home/${HOME_USER}/.bashrc` file without the `USER_ENV_` prefix.
For example, if you want to set a custom environment variable named `MY_VARIABLE` for the `HOME_USER`, you can do so by setting the `USER_ENV_MY_VARIABLE` environment variable when running the Docker container:
```bash
docker run -it -e HOME_USER=custom-home-user -e USER_ENV_MY_VARIABLE=my_value -e VSCODE_TUNNEL_NAME=vscode-ssh-remote-server -v /path/to/extensions.json:/home/extensions.json aleleba/vscode
```
In this example, MY_VARIABLE will be set to my_value in the /home/${HOME_USER}/.bashrc file.
### Global Environment Variables
You can set global environment variables by using the `GLOBAL_ENV_` prefix when running the Docker container. These environment variables will be created in the `/etc/environment` file without the `GLOBAL_ENV_` prefix.
For example, if you want to set a global environment variable named `MY_GLOBAL_VARIABLE`, you can do so by setting the `GLOBAL_ENV_MY_GLOBAL_VARIABLE` environment variable when running the Docker container:
```bash
docker run -it -e HOME_USER=custom-home-user -e GLOBAL_ENV_MY_GLOBAL_VARIABLE=my_global_value -e VSCODE_TUNNEL_NAME=vscode-ssh-remote-server -v /path/to/extensions.json:/home/extensions.json aleleba/vscode
```
In this example, MY_GLOBAL_VARIABLE will be set to my_global_value in the /etc/environment file.
### Adding VSCode Extensions
To add VSCode extensions to the container, create a JSON file with an array of objects containing the extension details you want to install, the only Mandatory field is uniqueIdentifier and follow this structure. For example:
```
[
{
"extensionsGroup": {
"description": "Extensions of Spanish Language Pack",
"extensions": [
{
"name": "Spanish Language Pack for Visual Studio Code",
"notes": "Extension of Spanish Language Pack for Visual Studio Code",
"uniqueIdentifier": "ms-ceintl.vscode-language-pack-es"
}
]
}
},
{
"extensionsGroup": {
"description": "Extensions of Github Copilot",
"extensions": [
{
"name": "GitHub Copilot",
"notes": "Extension of GitHub Copilot",
"uniqueIdentifier": "github.copilot"
},
{
"name": "GitHub Copilot Chat",
"notes": "Extension of GitHub Copilot Chat",
"uniqueIdentifier": "github.copilot-chat"
}
]
}
}
]
```
Save this file as `extensions.json` and add it as a volume when running the Docker container on /home/extensions.json. For example:
`docker run -it -e HOME_USER=custom-home-user -e VSCODE_TUNNEL_NAME=vscode-ssh-remote-server -v /path/to/extensions.json:/home/extensions.json aleleba/vscode`
The extensions will be installed automatically after the container is created.
### Using Docker Compose
Alternatively, you can use Docker Compose to run the container with the `aleleba/vscode` image and the `HOME_USER` and `VSCODE_TUNNEL_NAME` environment variables set. Here's an example `docker-compose.yml` file:
```
version: '3'
services:
vscode:
image: aleleba/vscode
environment:
HOME_USER: custom-home-user
VSCODE_TUNNEL_NAME: vscode-ssh-remote-server
volumes:
- /path/to/extensions.json:/home/extensions.json
```
You can run this `docker-compose.yml` file by navigating to the directory where it is saved and running the following command: `docker-compose up -d`
This will start the container in the background and output the container ID. You can then use the `docker ps` command to view the running container.
## Adding Custom Scripts
In this project, you can add custom scripts that will be automatically executed when the application starts. The `/usr/bin/custom-scripts` directory in the Docker container is a volume that maps to a directory on your host machine. Here's how you can add a custom script:
### 1. Create a new script file
Create a new file with a `.sh` extension in the directory on your host machine that maps to the `/usr/bin/custom-scripts` volume in the Docker container. For example, if the `/usr/bin/custom-scripts` volume maps to the `./custom-scripts` directory on your host machine, you can create a file named `install_node.sh` in the `./custom-scripts` directory.
```bash
touch ./custom-scripts/install_node.sh
```
### 2. Write your script
Open the file in a text editor and write your script. Here's an example that installs Node.js using NVM:
```bash
#!/bin/bash
# Installing Node.js with NVM
sudo curl -O https://raw.githubusercontent.com/creationix/nvm/master/install.sh
bash install.sh
source ~/.nvm/nvm.sh
nvm install --lts
nvm alias default lts/*
nvm use default && npm install -g yo generator-code
nvm use default && npm install -g @vscode/vsce
```
The #!/bin/bash line at the top of the script tells the system that this script should be run with the Bash shell.
#### Note on sudo privileges
If the script name includes the word "sudo", the script will be run with root privileges. This is useful if your script needs to perform operations that require superuser privileges.
For instance, if you have a script named `install_sudo_package.sh`, this script will be run with root privileges due to the inclusion of "sudo" in the file name.
Please be aware of the security implications when running scripts with root privileges. Ensure that your script does not perform any unsafe or destructive operations when run with these privileges.
### 3. Run your Docker container
When you start your Docker container, all .sh files in the /usr/bin/custom-scripts directory will be automatically executed in alphabetical order. The environment variables from the /etc/environment file will be loaded before each script is executed.
Remember to replace install_node.sh with the name of your script and ./custom-scripts with the actual path to the directory on your host machine that maps to the /usr/bin/custom-scripts volume in the Docker container.
## Using this image as a base image in a Dockerfile
To use this image as a base image in a Dockerfile, you can add the following line to the top of your Dockerfile and you can install any additional packages you need, here an example installing nvm and nodejs in a `Dockerfile`:
```
FROM aleleba/vscode:latest
ENV HOME_USER=vscode
RUN sudo adduser --disabled-password --gecos "" --uid 1000 ${HOME_USER}
RUN sudo echo "$HOME_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null
USER ${HOME_USER}
WORKDIR /home/${HOME_USER}
# Installing node.js and NVM
SHELL ["/bin/bash", "--login", "-i", "-c"]
RUN curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
RUN nvm install --lts
RUN nvm alias default lts/*
SHELL ["/bin/sh", "-c"]
RUN echo 'source ~/.nvm/nvm.sh' >> ~/.bashrc
# Finishing installing node.js and NVM
```
> **Note:** If you are using this image as a base image in a Dockerfile, ensure that the value of `HOME_USER` is the same as the one you will use when creating the container. This is necessary to ensure that all configurations and packages are installed in the correct user directory.
> **Note:** To grant access to the server, please log into https://github.com/login/device and use the code XXXX-XXXX. You can view the container logs to get the code.
## Contributing
If you'd like to contribute to this project, please fork the repository and create a pull request.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
I hope this helps! Let me know if you have any further questions.

2
version.txt Normal file → Executable file
View File

@ -1 +1 @@
1.0.19
3.2.7