Updated to AlmaLinux 9 and reduced image size. Updated documentation to reflect move to ECR and changes

This commit is contained in:
Josh Knapp 2023-05-27 11:13:18 -07:00
parent 2545d91e04
commit f11845a77d
4 changed files with 40 additions and 20 deletions

View File

@ -1,16 +1,16 @@
FROM almalinux/8-base:latest FROM almalinux/9-base
ARG PHPVER=81 ARG PHPVER=81
RUN dnf update -y && dnf upgrade -y #RUN dnf update -y && dnf upgrade -y
RUN dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y RUN dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
RUN dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm RUN dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
RUN dnf update -y && dnf upgrade -y #RUN dnf update -y && dnf upgrade -y
RUN dnf install -y memcached httpd mod_ssl wget procps RUN dnf install -y httpd mod_ssl wget procps
RUN openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 3650 -subj "/CN=localhost" -out /etc/pki/tls/certs/localhost.crt RUN openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 3650 -subj "/CN=localhost" -out /etc/pki/tls/certs/localhost.crt
RUN mkdir /run/php-fpm/ RUN mkdir /run/php-fpm/
RUN mkdir /scripts RUN mkdir /scripts
COPY ./scripts/* /scripts/ COPY ./scripts/* /scripts/
RUN chmod +x /scripts/* RUN chmod +x /scripts/*
RUN /scripts/install-php$PHPVER.sh #RUN /scripts/install-php$PHPVER.sh
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
RUN chmod +x wp-cli.phar RUN chmod +x wp-cli.phar
RUN mv wp-cli.phar /usr/local/bin/wp RUN mv wp-cli.phar /usr/local/bin/wp

View File

@ -1,27 +1,29 @@
# Cloud Apache Container # # Cloud Apache Container #
This is the base container for running PHP based applications. Select the PHP version with the tags This is the base container for running PHP based applications. Select the PHP version environment variables. PHP Version Defaults to PHP 8.1
*__You mush have docker or compatable containerization software running.__* *__You mush have docker or compatable containerization software running.__*
__You can pull this image locally by running:__ __You can pull this image locally by running:__
```console ```console
docker pull registry.dnspegasus.net/cac:81 docker pull public.ecr.aws/s1f6k4w4/cac:latest
``` ```
__You can then run a development version of the server by running the following commands:__ __You can then run a development version of the server by running the following commands:__
*Note this is an example, you can modify the command(s) to fit your needs.*
```console ```console
mkdir -p local-development/domain.tld mkdir -p local-development/domain.tld
cd local-development/domain.tld cd local-development/domain.tld
mkdir web mkdir {web,db}
mkdir db docker run -it -p 80:80 -p 443:443 -e PHPVER=81 -e environment=DEV --mount type=bind,source="$(pwd)"/web,target=/home/myuser/public_html --mount type=bind,source="$(pwd)"/db,target=/var/lib/mysql -e uid=30001 -e user=myuser -e domain=domain.tld -e serveralias=www.domain.tld --name local-dev cac:latest
docker run -it --rm -p 80:80 -p 443:443 -e environment=DEV --mount type=bind,source="$(pwd)"/web,target=/home/myuser/public_html --mount type=bind,source="$(pwd)"/db,target=/var/lib/mysql -e uid=30001 -e user=myuser -e domain=domain.tld -e serveralias=www.domain.tld --name local-dev cac:81
``` ```
*This will start the processes needed to run sites locally.* *This will start the processes needed to run sites locally.*
__If you need to get into the container you can run from another terminal:__ The first time you start the container, it will take some time as it is installing all the required software to run the dev instance.
__If you need to get into the container you can run:__
```console ```console
docker exec -it local-dev /bin/bash docker exec -it local-dev /bin/bash
@ -40,7 +42,7 @@ You should be able to then go into your browser and go to https://localhost (ac
The database credentials are shown in the /var/lib/mysql/creds file, which we had *cat* in the commands above. The database credentials are shown in the /var/lib/mysql/creds file, which we had *cat* in the commands above.
### Tags ### ### PHPVER ###
*74* - PHP 7.4 *74* - PHP 7.4
*80* - PHP 8.0 *80* - PHP 8.0
*81* - PHP 8.1 *81* - PHP 8.1
@ -55,3 +57,15 @@ __Required Tags__
__Optional Tags__ __Optional Tags__
*environment* - Set to DEV to start memcached and mysql locally for development purposes *environment* - Set to DEV to start memcached and mysql locally for development purposes
*serveralias* - Set to allow alternative hostnames for a site. *serveralias* - Set to allow alternative hostnames for a site.
*PHPVER* - Set to use a different version of PHP [refer to versions here.](#phpver)
### Helpful Notes ###
* On your first creation of a dev instance, you will be dumped to the logs output. Hit ```ctrl + c``` to exit the running process.
* If you want to restart the instance again, run ```docker start {name-of-your-container}``` in the example, *name-of-your-cintainer* is *local-dev*
* To stop a restarted instance, run ```docker stop {name-of-your-container}```
* To view log stream from container, run ```docker logs -f {name-of-your-container}```
* To delete a container, run ```docker rm {name-of-your-container}``` *__Note:__ this does not delete the files in public_html or database, as those are store in your system*
* To view running containers, run ```docker ps```
* To view all created containers, run ```docker ps --all``
* To view all container images downloaded on your system, run ```docker images```

View File

@ -13,8 +13,8 @@ listen.owner = apache
listen.group = apache listen.group = apache
pm = static pm = static
pm.max_children = 25 pm.max_children = 10
pm.max_requests = 1000 pm.max_requests = 150
slowlog = /etc/httpd/logs/error_log slowlog = /etc/httpd/logs/error_log
request_slowlog_timeout = 3s request_slowlog_timeout = 3s

View File

@ -1,5 +1,9 @@
#!/bin/bash #!/bin/bash
if [ -z "$PHPVER" ]; then
PHPVER="81";
fi
adduser -u $uid $user adduser -u $uid $user
mkdir -p /home/$user/public_html mkdir -p /home/$user/public_html
@ -7,6 +11,8 @@ mkdir -p /home/$user/public_html
chown -R $user:$user /home/$user chown -R $user:$user /home/$user
chmod -R 755 /home/$user chmod -R 755 /home/$user
/scripts/install-php$PHPVER.sh
/scripts/create-vhost.sh /scripts/create-vhost.sh
/scripts/create-php-config.sh /scripts/create-php-config.sh
@ -15,7 +21,7 @@ chmod -R 755 /home/$user
if [[ $environment == 'DEV' ]]; then if [[ $environment == 'DEV' ]]; then
echo "Starting Dev Deployment" echo "Starting Dev Deployment"
yum install -y MariaDB-server MariaDB-client dnf install -y MariaDB-server MariaDB-client memcached
nohup mysqld -umysql & nohup mysqld -umysql &
if [ ! -f /var/lib/mysql/creds ]; then if [ ! -f /var/lib/mysql/creds ]; then
echo "Give MySQL a chance to finish starting..." echo "Give MySQL a chance to finish starting..."