Compare commits

..

13 Commits

Author SHA1 Message Date
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
5 changed files with 72 additions and 14 deletions

View File

@ -32,7 +32,7 @@ RUN curl -sL https://aka.ms/DevTunnelCliInstall | bash
RUN sudo apt-get update && sudo apt-get install -y gnupg2 RUN sudo apt-get update && sudo apt-get install -y gnupg2
RUN sudo apt-get install -y software-properties-common 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 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 add-apt-repository "deb [arch=${ARCH}] https://packages.microsoft.com/repos/vscode stable main"
RUN sudo apt update RUN sudo apt update
RUN sudo apt install code -y RUN sudo apt install code -y

View File

@ -31,7 +31,8 @@ sed 's/^GLOBAL_ENV_//' |
while IFS= read -r line while IFS= read -r line
do do
if ! grep -q "^${line%=*}=" /etc/environment; then if ! grep -q "^${line%=*}=" /etc/environment; then
echo "export $line" | sudo tee -a /etc/environment echo "" >> /etc/environment
echo "export $line" >> /etc/environment
fi fi
done done
@ -47,7 +48,14 @@ sed 's/^USER_ENV_//' |
# Append the result to /usr/bin/.bashrc # Append the result to /usr/bin/.bashrc
while IFS= read -r line while IFS= read -r line
do do
echo "export $line" >> /usr/bin/.bashrc # 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 done
USER="$HOME_USER" USER="$HOME_USER"
@ -69,22 +77,35 @@ if [ "$HOME_USER" != "$(whoami)" ]; then
exec sudo -u $HOME_USER bash -c "source /etc/environment; /usr/bin/entrypoint.sh" exec sudo -u $HOME_USER bash -c "source /etc/environment; /usr/bin/entrypoint.sh"
else else
sudo chown -R ${HOME_USER} /home/${HOME_USER} sudo chown -R ${HOME_USER} /home/${HOME_USER}
sudo chmod -R 600 /home/${HOME_USER}/.ssh
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 fi
# Find .sh files in /usr/bin/custom-scripts and execute them in order # 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 for script in $(find /usr/bin/custom-scripts -name "*.sh" | sort); do
chmod +x $script chmod +x $script
sudo -u $HOME_USER bash -c "source /etc/environment; $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 done
# Move the .bashrc file to the user's home directory
sudo mv /usr/bin/.bashrc /home/${HOME_USER}/.bashrc
sudo chown ${HOME_USER} /home/${HOME_USER}/.bashrc
# Move the .profile file to the user's home directory
sudo mv /usr/bin/.profile /home/${HOME_USER}/.profile
sudo chown ${HOME_USER} /home/${HOME_USER}/.profile
#Creating extensions folder #Creating extensions folder
if [ ! -d "/home/${HOME_USER}/.config/Code" ]; then if [ ! -d "/home/${HOME_USER}/.config/Code" ]; then
sudo mkdir -p /home/${HOME_USER}/.config/Code sudo mkdir -p /home/${HOME_USER}/.config/Code

2
hooks/build Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t $IMAGE_NAME .

View File

@ -122,7 +122,7 @@ Open the file in a text editor and write your script. Here's an example that ins
```bash ```bash
#!/bin/bash #!/bin/bash
# Installing Node.js with NVM # Installing Node.js with NVM
curl -O https://raw.githubusercontent.com/creationix/nvm/master/install.sh sudo curl -O https://raw.githubusercontent.com/creationix/nvm/master/install.sh
bash install.sh bash install.sh
source ~/.nvm/nvm.sh source ~/.nvm/nvm.sh
nvm install --lts nvm install --lts
@ -132,11 +132,46 @@ 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. 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 ### 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. 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. 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.
## Contributing ## Contributing
If you'd like to contribute to this project, please fork the repository and create a pull request. If you'd like to contribute to this project, please fork the repository and create a pull request.

View File

@ -1 +1 @@
3.0.24 3.0.37