A docker image containing all of the tools necessary to build and test a Laravel application.
- PHP version: 7.3
- MySQL version: 5.7
- NodeJS versions: 6, 8, 10, 12, 14, 16
bcmath
bz2
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
hash
iconv
imagick
imap
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcov
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
soap
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
v2
For PHP 7.4v1
For PHP 7.3latest
(depricated - for backward compatibility only)
Ensure you are logged in locally to hub.docker.com using docker login
and have access to the hub repository.
(note: your username is used, not your email address).
$ docker build ./ --tag way2web/pipeline-apps:TAG
$ docker push way2web/pipeline-apps:TAG
Replace TAG
with the tag you are working on.
If you want to test a new feature, create a new tag for it. This way, it can not introduce issues in the production image if something is not working properly.
Once it works, delete the custom tag and introduce it into latest
$ docker-compose up --build
$ docker exec -it pipeline-apps bash
If the image is updated, Chrome is updated as well. This might break your Dusk test if you are using an older Chrome driver. To make sure this does not happen, you can use artisan to download the proper Chrome driver based on this image's Chrome version.
A CHROME_VERSION
environment variable is available containing the current Chrome version (i.e. 79
). So you can automate downloading the proper Chrome version like this:
php artisan dusk:chrome-driver ${CHROME_VERSION}
If the platform you run Dusk on does not support reading the environment variables from the docker image, you can, for example, manually create the variable, like so:
CHROME_VERSION=$(cat /root/chrome_version)
Make sure you create it before running the download command.
Projects are mounted to /var/www/projects
.
/usr/bin/mysqld_safe --user=mysql &
mysql -u root -proot