Compare commits

...

16 Commits

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

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

View File

@ -16,7 +16,7 @@ RUN sudo apt-get update
RUN sudo apt-get install 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 - \
&& 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 \
@ -29,12 +29,13 @@ RUN ARCH="$(dpkg --print-architecture)" \
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 update \
&& sudo apt install code -y
#Making home writteable
RUN sudo chmod -R a+rwX /home

View File

@ -48,8 +48,14 @@ sed 's/^USER_ENV_//' |
# Append the result to /usr/bin/.bashrc
while IFS= read -r line
do
echo "" >> /usr/bin/.bashrc
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
USER="$HOME_USER"
@ -71,6 +77,36 @@ 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
@ -83,14 +119,6 @@ for script in $(find /usr/bin/custom-scripts -name "*.sh" | sort); do
fi
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
if [ ! -d "/home/${HOME_USER}/.config/Code" ]; then
sudo mkdir -p /home/${HOME_USER}/.config/Code

View File

@ -122,7 +122,7 @@ Open the file in a text editor and write your script. Here's an example that ins
```bash
#!/bin/bash
# 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
source ~/.nvm/nvm.sh
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.
#### 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.
## Contributing
If you'd like to contribute to this project, please fork the repository and create a pull request.

View File

@ -1 +1 @@
3.0.27
3.1.2