Compare commits

7 Commits

Author SHA1 Message Date
4677b84a29 Initial docker sandbox 2022-07-04 23:25:31 +08:00
7008ec36b7 Apache fix 2022-07-04 23:24:43 +08:00
f2d41885af Composer cleanup 2022-07-04 23:24:27 +08:00
9972fc6d9d Updated chrome 2022-07-04 22:23:44 +08:00
f7ef85aad9 Updated apache2 2022-07-04 22:22:57 +08:00
3043a41365 Sort in apt 2022-07-04 22:22:37 +08:00
47c1e6d40b Fixed gen-makefile 2022-07-04 22:22:05 +08:00
9 changed files with 125 additions and 89 deletions

4
.dockerignore Normal file
View File

@@ -0,0 +1,4 @@
.git
.gitignore
.dockerignore
README.md

27
Dockerfile Normal file
View File

@@ -0,0 +1,27 @@
FROM ubuntu:22.04
RUN apt update && \
apt -y install \
apt-transport-https \
apt-utils \
bsdmainutils \
curl \
dialog \
grep \
make \
man \
sudo \
wget
RUN adduser ivan \
--quiet \
--home=/home/ivan \
--ingroup=sudo \
--disabled-password \
--disabled-login
COPY ./ /home/ivan/my-env
RUN echo "ivan ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
USER ivan
WORKDIR /home/ivan/my-env

View File

@@ -1,7 +1,8 @@
# Autogenerated at 04.07.2022 22:11 using ./gen-makefile.sh # Autogenerated at 04.07.2022 23:25 using ./gen-makefile.sh
##lamp: Apache + php + mariadb ##lamp: Apache + php + mariadb
lamp: apache php mariadb lamp: apache php mariadb
##apache: Install apache2 (latest) ##apache: Install apache2 (latest)
apache: apache:
./install/apache ./install/apache
@@ -109,6 +110,6 @@ help: Makefile
@echo "Available goals:" @echo "Available goals:"
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/" @sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
##<goal>_: Same as 'cat ./install/<goal>.sh' ##<goal>_: Same as 'cat ./install/<goal>'
%_: %_:
@cat ./install/$*.sh @cat ./install/$*

View File

@@ -30,6 +30,9 @@ make help
./gen-makefile.sh ./gen-makefile.sh
``` ```
> I do not recomend to run `make` without arguments.
> Use `make help` to look around.
### Selective straightforward installation ### Selective straightforward installation
```shell ```shell
@@ -72,3 +75,18 @@ mypackY: goalA goalB
where: where:
* `mypack*` is the pack name * `mypack*` is the pack name
* `goal*` are script names in `./install` * `goal*` are script names in `./install`
## Testing in docker
```shell
# switch to repo dir
cd my-env
# build and run container
docker build -t myenv . && docker run -it myenv
# oneliner
docker run -it $(docker build -q .)
```
Now you can play around with scripts.

View File

@@ -4,6 +4,7 @@ echo -e "# Autogenerated at $(date +'%d.%m.%Y %H:%M') using ${BASH_SOURCE[0]}\n"
for file in ./packs/*; do for file in ./packs/*; do
cat ${file} >> Makefile cat ${file} >> Makefile
echo >> Makefile
done; done;
for file in ./install/*; do for file in ./install/*; do
@@ -22,12 +23,11 @@ help: Makefile
@echo "Available goals:" @echo "Available goals:"
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/" @sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
##<goal>_: Same as 'cat ./install/<goal>.sh' ##<goal>_: Same as 'cat ./install/<goal>'
%_: %_:
@cat ./install/\$*.sh @cat ./install/\$*
EOF EOF
echo "New ./Makefile has been generated!" echo "New ./Makefile has been generated!"
echo "Old one has been saved as ./Makefile.bak" echo "Old one has been saved as ./Makefile.bak"
echo echo

View File

@@ -7,6 +7,6 @@ echo "Installing apache2..."
echo "===============================================" echo "==============================================="
echo echo
sudo apt install -y --autoremove apache2 sudo apt install -y --autoremove apache2 && \
sudo service apache2 restart sudo systemctl restart apache2 && \
apache2 -v apache2 -v

View File

@@ -7,54 +7,56 @@ echo "Installing software from apt..."
echo "===============================================" echo "==============================================="
echo echo
sudo apt update && sudo apt upgrade -y --autoremove sudo apt update && \
sudo apt install -y --autoremove \ sudo apt upgrade -y --autoremove
sudo apt install -y \
alien \
apt-transport-https \ apt-transport-https \
ca-certificates \
curl \
make \
cmake \
dialog \
build-essential \ build-essential \
software-properties-common \ ca-certificates \
libaio1 \ cmake \
libssl-dev \ curl \
libghc-zlib-dev \ dconf-editor \
libcurl4-gnutls-dev \ default-jdk \
libexpat1-dev \ dialog \
gettext \ gettext \
gnupg \ gnupg \
ubuntu-restricted-extras \
unzip \
mc \
htop \
nano \
neofetch \
default-jdk \
terminator \
dconf-editor \
alien \
meld \
vlc \
gparted \ gparted \
hardinfo \ hardinfo \
htop \
libaio1 \
libcurl4-gnutls-dev \
libexpat1-dev \
libghc-zlib-dev \
libreoffice \ libreoffice \
pulseeffects \ libssl-dev \
lsp-plugins \
lsb-release \ lsb-release \
lsp-plugins \
make \
mc \
meld \
nano \
neofetch \
net-tools \ net-tools \
nmap \ nmap \
p7zip-full \ p7zip-full \
sqlitebrowser pulseeffects \
# gnome-software \ software-properties-common \
# minder \ sqlitebrowser \
# redshift \ terminator \
# redshift-gtk \ ubuntu-restricted-extras \
# nodejs \ unzip \
vlc \
# at \
# compiz \ # compiz \
# compizconfig-settings-manager \ # compizconfig-settings-manager \
# deepin-screenshot \
# earlyoom \ # earlyoom \
# etckeeper \ # etckeeper \
# deepin-screenshot \
# geoclue-2.0 \ # geoclue-2.0 \
# at # gnome-software \
# minder \
# nodejs \
# redshift \
# redshift-gtk

View File

@@ -9,7 +9,6 @@ echo
# https://t.me/axenov_blog/251 # https://t.me/axenov_blog/251
# sudo snap install chromium wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb && \
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb && \
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb rm /tmp/google-chrome-stable_current_amd64.deb
rm /tmp/google-chrome-stable_current_amd64.deb

View File

@@ -11,46 +11,31 @@ installed() {
command -v "$1" >/dev/null 2>&1 command -v "$1" >/dev/null 2>&1
} }
if installed "php"; then !installed "php" && echo "WARNING: You need to have php installed"
if installed "composer"; then
echo "WARNING: You already have composer installed - removing to install actual version" if installed "composer"; then
sudo apt remove -y --autoremove composer echo "WARNING: Removing current composer to install its actual version"
sudo rm -f /bin/composer sudo apt remove -y --autoremove composer
sudo rm -f /usr/bin/composer sudo rm -f /bin/composer
sudo rm -f /usr/local/bin/composer sudo rm -f /usr/bin/composer
sudo rm -rf /usr/src/composer sudo rm -f /usr/local/bin/composer
fi sudo rm -rf /usr/src/composer
sudo mkdir -m 0777 -p /usr/src/composer
cd /usr/src/composer
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
>&2 echo 'ERROR: Invalid installer checksum'
rm composer-setup.php
exit 1
fi
php composer-setup.php --quiet
sudo cp /usr/src/composer/composer.phar /usr/local/bin/composer
cd - >/dev/null
sudo rm -rf /usr/src/composer/
installed "composer" && composer --version
else
echo "WARNING: You need to have php installed"
fi fi
# title "Installing composer.phar in home dir..." sudo mkdir -m 0777 -p /usr/src/composer
# cd ~ cd /usr/src/composer
# EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
# ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
# if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# then ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
# >&2 echo 'ERROR: Invalid installer signature' if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
# rm composer-setup.php >&2 echo 'ERROR: Invalid installer checksum'
# exit 1 rm composer-setup.php
# fi exit 1
# php composer-setup.php --quiet fi
# RESULT=$? php composer-setup.php --quiet
# rm composer-setup.php sudo cp /usr/src/composer/composer.phar /usr/local/bin/composer
cd - >/dev/null
sudo rm -rf /usr/src/composer/
installed "composer" && composer --version