-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Init ubuntu:24.04 (PHP 7.3 + PHP 8.3) redis-server + memcached
- Loading branch information
Alexandr Smirnov
committed
Jun 9, 2024
1 parent
8712cbe
commit bfd5f96
Showing
3 changed files
with
218 additions
and
2 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
FROM ubuntu:24.04 | ||
MAINTAINER "Kohana World Team" | ||
|
||
# noninteractive to prevent user input forms | ||
ARG DEBIAN_FRONTEND=noninteractive | ||
|
||
ARG TZ=Etc/UTC | ||
|
||
# Set ENV treavis_test to 1 (true) - This can be used inside Unittests to detrmine the env | ||
ENV TRAVIS_TEST=1; | ||
|
||
# Install Required Packages | ||
# First add 'deb-src' so we can 'build-dep' | ||
# Update an upgrade system | ||
# Install (without recommends and silent) basic system tools and required libs | ||
# Add PHP 7.3 repository and install php7.3 with all required extensions | ||
# Finally: install composer and configure services | ||
RUN cp /etc/apt/sources.list /etc/apt/sources.list~ && \ | ||
sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list && \ | ||
apt-get update && \ | ||
apt-get -qq install --no-install-recommends apt-utils software-properties-common htop nano && \ | ||
add-apt-repository ppa:ondrej/php && \ | ||
apt-get update && \ | ||
apt-get -qq upgrade && \ | ||
apt-get -qq install ca-certificates \ | ||
language-pack-en \ | ||
curl \ | ||
unzip \ | ||
wget \ | ||
gcc \ | ||
git \ | ||
libcurl4-openssl-dev \ | ||
libde265-dev \ | ||
libwebp-dev \ | ||
libmagic-dev \ | ||
libmcrypt-dev \ | ||
libmemcached11 \ | ||
libmemcachedutil2 \ | ||
libmemcached-dev \ | ||
libmagickwand-dev \ | ||
zlib1g-dev \ | ||
zlib1g \ | ||
imagemagick \ | ||
webp \ | ||
tzdata && \ | ||
apt-get -qq install --no-install-recommends \ | ||
redis-server \ | ||
memcached \ | ||
php-dev \ | ||
php-pear && \ | ||
echo "requirepass password" >> /etc/redis/redis.conf && \ | ||
sed -i "s/bind .*/bind 127.0.0.1/g" /etc/redis/redis.conf && \ | ||
pear update-channels && \ | ||
pecl upgrade timezonedb && \ | ||
apt-get -qq install --no-install-recommends \ | ||
php7.3-dev \ | ||
php7.3 \ | ||
php7.3-apcu \ | ||
php7.3-common \ | ||
php7.3-cli \ | ||
php7.3-mbstring \ | ||
php7.3-gd \ | ||
php7.3-mysql \ | ||
php7.3-curl \ | ||
php7.3-xml \ | ||
php7.3-sqlite3 \ | ||
php7.3-opcache \ | ||
php7.3-pgsql \ | ||
php7.3-mysql \ | ||
php7.3-intl \ | ||
php7.3-raphf \ | ||
php7.3-mcrypt \ | ||
php7.3-apcu \ | ||
php7.3-gmagick \ | ||
php7.3-mcrypt \ | ||
php7.3-propro \ | ||
php7.3-redis && \ | ||
update-alternatives --set php /usr/bin/php7.3 && \ | ||
update-alternatives --set phpize /usr/bin/phpize7.3 && \ | ||
update-alternatives --set php-config /usr/bin/php-config7.3 && \ | ||
printf "\n" | pecl install memcache-4.0.5.2 && \ | ||
echo 'extension=memcache.so' >> /etc/php/7.3/cli/php.ini && \ | ||
echo 'apc.enabled=1' >> /etc/php/7.3/cli/php.ini && \ | ||
echo 'apc.enable_cli=1' >> /etc/php/7.3/cli/php.ini && \ | ||
echo "\n" | pecl install xdebug-3.1.6 && \ | ||
echo 'zend_extension=/usr/lib/php/20180731/xdebug.so' >> /etc/php/7.3/cli/php.ini && \ | ||
echo 'xdebug.mode = coverage ' >> /etc/php/7.3/cli/php.ini && \ | ||
apt-get -qq install --no-install-recommends \ | ||
php-curl \ | ||
php-xdebug \ | ||
php-redis \ | ||
php-pear \ | ||
php-yaml \ | ||
php-gd \ | ||
php-http \ | ||
php-raphf \ | ||
php-mcrypt \ | ||
php-mbstring \ | ||
php-memcache \ | ||
php-sqlite3 \ | ||
php-mysql \ | ||
php-pgsql \ | ||
php-apcu \ | ||
php-gmagick && \ | ||
echo 'xdebug.mode = coverage ' >> /etc/php/8.3/cli/php.ini && \ | ||
echo 'apc.enabled=1' >> /etc/php/8.3/cli/php.ini && \ | ||
echo 'apc.enable_cli=1' >> /etc/php/8.3/cli/php.ini && \ | ||
apt-get -qq remove gcc php-dev php7.3-dev && \ | ||
echo 'Y' | apt -qq autoremove && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
RUN curl -s https://getcomposer.org/installer | php && \ | ||
mv composer.phar /usr/local/bin/composer && \ | ||
mkdir -p /tmp/kohana |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,96 @@ | ||
# docker | ||
Kohana Docker Images ( kohana.world, koseven, modseven) | ||
# Kohana.World Docker Images ( kohana.world, koseven, modseven) | ||
![License](https://img.shields.io/badge/license-BSD--3--Clause-green.svg) | ||
|
||
This repository holds docker images which can be used for Kohana Framework. | ||
|
||
There will be 4 branches which all server a different purpose: | ||
|
||
| Branch | Purpose | | ||
| --------------- |---------------------------------------------------------------------------------------------| | ||
| master | Image for a development/production environment. | | ||
| travis | Image for Unit-Testing inside Travis CI (CAREFUL: Don't use on production servers.) | | ||
| devel | Development Branch for `master`. Only latest `kohana:devel` version will be supproted. | | ||
| travis-devel | Development Branch for `travis`. Only latest `kohana:devel` version will be supproted. | | ||
|
||
## Using the container images | ||
|
||
Using one of the container is quite straight forward. | ||
The docker repository for them is called `kohanaworld/docker`. | ||
|
||
By specifying the desired branch as docker-tag you can acquire the desired image. | ||
|
||
_Note: for pulling the `master` branch use `latest` as tag name._ | ||
|
||
e.g. This will pull the master branch image: | ||
`docker pull kohanaworld/docker:latest` | ||
|
||
e.g This will pull the travis branch image: | ||
`docker pull kohanaworld/docker:travis-devel` | ||
|
||
After executing the `docker pull` command from above you're done setting up | ||
your docker image, now you can go ahead and use it! | ||
|
||
## Example for using `master` image | ||
|
||
__Coming Soon. Stay tuned!__ | ||
|
||
## Example for using `travis-devel` image | ||
|
||
For this particular Image you have multiple options. | ||
|
||
1. Some IDE's ([PHPStorm](https://intellij-support.jetbrains.com/hc/en-us/community/posts/14391537025170-PHPUnittests-via-docker-by-PHPStorm-Configuration) for example) have full support for docker unittesting, you just need to configure it there and | ||
you are good to go! | ||
|
||
2. Run the tests from the cli. Execute the following cli commands (from within your Kohana installation folder): | ||
Start container in background and mount installation folder: | ||
|
||
```shell | ||
docker stop unittest && docker rm unittest | ||
docker run -dtP --name unittest -v $(pwd):/tmp/kohana/ kohanaworld/docker:travis-devel | ||
``` | ||
|
||
3. Start services, install composer requirements and run PHPUnit | ||
```shell | ||
docker exec unittest /bin/sh -c "service redis-server start; service memcached start" | ||
cd /tmp/kohana | ||
update-alternatives --config php | ||
# switch php version | ||
composer install | ||
php vendor/bin/phpunit" | ||
``` | ||
_(Hint) You can execute a `/bin/bash` shell inside the container and modify it before Unit-Testing | ||
```shell | ||
docker exec -it unittest /bin/bash | ||
cd /tmp/kohana | ||
``` | ||
_(Hint) You can execute a single test | ||
```shell | ||
docker exec -it unittest /bin/bash | ||
cd /tmp/kohana | ||
composer install | ||
php vendor/bin/phpunit --filter HTMLTest | ||
php vendor/bin/phpunit --filter HTMLTest --debug | ||
``` | ||
_ | ||
For more examples / tutorials how to create and interact with container visit the official [Docker Help](https://docs.docker.com/get-started/) | ||
## Roadmap | ||
| Target | Release date | | ||
| ---------------------- |--------------| | ||
| Initial `master` image | 2024.07.01 | | ||
| Initial `travis` image | 2024.06.16 | | ||
| Initial `travis-devel` | 2024.06.09 | | ||
## Contributing | ||
As usual, [fork and send pull requests](https://github.com/kohanaxworld/docker/pulls) | ||
## Getting Help | ||
* Open issues in this project. | ||
## TODO | ||