Skip to content
Snippets Groups Projects
Commit 7fefb4b2 authored by Gérôme Canals's avatar Gérôme Canals
Browse files

updated boilerplate with 8.1

parent 7bd44720
No related branches found
No related tags found
No related merge requests found
...@@ -29,7 +29,7 @@ $ docker-compose -f docker-compose.yml start ...@@ -29,7 +29,7 @@ $ docker-compose -f docker-compose.yml start
### machine(s) php ### machine(s) php
* un ou plusieurs services php/apache ou php-cli * un ou plusieurs services php/apache ou php-cli
* basés sur les images `canals/php`, les tags `:8.0`,`:8.0-cli`, `:7.4`,`:latest`,`:7.4-cli`, `:7.3`,`:7.3-cli`, `:7.2` et `7.2-cli`, `:7.1` * basés sur les images `canals/php`, les tags `:8.1`,`:8.1-cli`, `:latest`, `:8.0`,`:8.0-cli`, `:7.4`,`:7.4-cli`, `:7.3`,`:7.3-cli`, `:7.2` et `7.2-cli`, `:7.1`
et `7.1-cli`,`:5.6` sont utilisables (pour plus de détails sur ces images, et `7.1-cli`,`:5.6` sont utilisables (pour plus de détails sur ces images,
voir la [doc](https://hub.docker.com/r/canals/php/) ) voir la [doc](https://hub.docker.com/r/canals/php/) )
* conseils : utiliser les vhost et les déclarer dans votre `/etc/hosts` * conseils : utiliser les vhost et les déclarer dans votre `/etc/hosts`
...@@ -54,26 +54,28 @@ services: ...@@ -54,26 +54,28 @@ services:
- ./src:/var/www/src - ./src:/var/www/src
- ./html:/var/www/html - ./html:/var/www/html
- data:/var/www/data - data:/var/www/data
links : networks:
- mysql:db - local_network
- mongodb:mongo depends_on :
- mailcatcher:mail - mysql
- postgres:pg - mongodb
``` ```
#### exemple : service php-cli avec lancement du serveur embarqué : #### exemple : service php-cli avec lancement du serveur embarqué :
``` ```
services: services:
php: php:
image: canals/php:7.4-cli image: canals/php:8.1-cli
ports: ports:
- "8800:8000" - "8800:8000"
volumes: volumes:
- ./:/var/php - ./:/var/php
working_dir: /var/php working_dir: /var/php
command: php -S 0.0.0.0:8000 index.php command: php -S 0.0.0.0:8000 index.php
links : networks:
- mysql:db - local_network
- mongo:mongo depends_on :
- mysql
- mongodb
``` ```
### mysql + adminer ### mysql + adminer
...@@ -86,28 +88,34 @@ services: ...@@ -86,28 +88,34 @@ services:
si les fichiers d'import/export sont trop volumineux pour être traités par adminer si les fichiers d'import/export sont trop volumineux pour être traités par adminer
#### important : #### important :
Ne pas oublier de lier le service mysql dans tous les services qui doivent accéder à la base Le service mysql est accessible dans tous les services connectés au même réseau avec
mysql, par exemple dans les services php. un hostname ayant pour valeur le nom du service.
On peut ajouter un ou plusieurs hostname alternatifs avec la directive sous directive `aliases` de la directive `networks`
#### exemple #### exemple
``` ```
mysql: mysql:
image: mariadb:latest image: mariadb:latest
# image: mysql:5.6
environment: environment:
- MYSQL_ROOT_PASSWORD=root - MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=user - MYSQL_USER=user
- MYSQL_PASSWORD=user - MYSQL_PASSWORD=user
ports: ports:
- "3603:3306" - "3603:3306"
networks:
aliases:
- db
adminer: adminer:
image: adminer image: adminer
ports: ports:
- "8080:8080" - "8080:8080"
links: depends_on:
- mysql:db - mysql
# Dans ce conteneur, le serveur mysql est accessible avec le hostname mysql et
# le hostname db
``` ```
### mongodb + mongo-express ### mongodb + mongo-express
...@@ -123,13 +131,17 @@ mysql, par exemple dans les services php. ...@@ -123,13 +131,17 @@ mysql, par exemple dans les services php.
image: mongo:latest image: mongo:latest
ports: ports:
- 27017:27017 - 27017:27017
networks:
local_network:
aliases:
- mongo
mongo-express: mongo-express:
image: mongo-express:latest image: mongo-express:latest
ports: ports:
- "8081:8081" - "8081:8081"
links: depends_on:
- mongodb:mongo - mongodb
``` ```
### mailcatcher ### mailcatcher
...@@ -149,6 +161,10 @@ mailcatcher: ...@@ -149,6 +161,10 @@ mailcatcher:
ports: ports:
- "1080:1080" - "1080:1080"
- "1025:1025 - "1025:1025
networks:
local_network:
aliases:
- mail.server
``` ```
#### usage #### usage
...@@ -157,15 +173,16 @@ mailcatcher: ...@@ -157,15 +173,16 @@ mailcatcher:
web: web:
image: canals/php image: canals/php
... ...
links : networks:
- mysql:db - localnetwork
- mailcatcher:mail depends_on:
- mailcatcher
``` ```
il faut utiliser le serveur de mail nommé `mail` sur le port `1025`. il faut utiliser le serveur de mail nommé `mail.server` sur le port `1025`.
Par exemple, avec SwiftMailer : Par exemple, avec SwiftMailer :
``` ```
$mailer = new Swift_Mailer( new Swift_SmtpTransport('mail', 1025) ); $mailer = new Swift_Mailer( new Swift_SmtpTransport('mail.server', 1025) );
``` ```
...@@ -6,7 +6,7 @@ networks: ...@@ -6,7 +6,7 @@ networks:
services: services:
web: web:
image: canals/php:8.0 image: canals/php:latest
environment: environment:
- VHOST_HOSTNAME=web.test.local - VHOST_HOSTNAME=web.test.local
- VHOST_DOCROOT=/var/www/web - VHOST_DOCROOT=/var/www/web
...@@ -19,16 +19,19 @@ services: ...@@ -19,16 +19,19 @@ services:
- ./html:/var/www/html - ./html:/var/www/html
- data:/var/www/data - data:/var/www/data
working_dir: /var/www/src working_dir: /var/www/src
links : # links :
- mysql:db # - mysql:db
# - postgres:pg # - postgres:pg
# - mongo:mongo # - mongo:mongo
# - mail:mail # - mail:mail
networks: networks:
- local_network - local_network
depends_on:
- mysql
- mongo
php: php:
image: canals/php:8.0-cli image: canals/php:8.1-cli
expose: expose:
- "8000" - "8000"
ports: ports:
...@@ -39,9 +42,12 @@ services: ...@@ -39,9 +42,12 @@ services:
networks: networks:
- local_network - local_network
command: php -S 0.0.0.0:8000 web/index-cli.php command: php -S 0.0.0.0:8000 web/index-cli.php
links : depends_on:
- mysql:db - mysql
- mongo:mongo - mongo
# links :
# - mysql:db
# - mongo:mongo
# - mail:mail # - mail:mail
# - postgres:pg # - postgres:pg
...@@ -50,7 +56,6 @@ services: ...@@ -50,7 +56,6 @@ services:
# mysql + adminer / can be replaced by mariadb # mysql + adminer / can be replaced by mariadb
############################# #############################
mysql: mysql:
#image: mysql:5.6
image: mariadb:latest image: mariadb:latest
environment: environment:
- MYSQL_ROOT_PASSWORD=root - MYSQL_ROOT_PASSWORD=root
...@@ -59,14 +64,14 @@ services: ...@@ -59,14 +64,14 @@ services:
ports: ports:
- "3603:3306" - "3603:3306"
networks: networks:
- local_network local_network:
aliases:
- db
adminer: adminer:
image: adminer image: adminer
ports: ports:
- "8080:8080" - "8080:8080"
links:
- mysql:db
networks: networks:
- local_network - local_network
...@@ -96,32 +101,33 @@ services: ...@@ -96,32 +101,33 @@ services:
################################################ ################################################
# mongodb & mongo-express # mongodb & mongo-express
############################################### ###############################################
mongo: mongodb:
image: mongo:latest image: mongo:latest
ports: ports:
- 27017:27017 - 27017:27017
networks: networks:
- local_network local_network:
aliases:
- mongo
mongo-express: mongo-express:
image: mongo-express:latest image: mongo-express:latest
ports: ports:
- "8081:8081" - "8081:8081"
links: # links:
- mongo:mongo # - mongo:mongo
networks: networks:
- local_network - local_network
############################################## ##############################################
# mailcatcher : so useful ! # mailcatcher : so useful !
############################################## ##############################################
# mail: mail:
# image: schickling/mailcatcher image: schickling/mailcatcher
# container_name: mail_test ports:
# ports: - "1080:1080"
# - "1080:1080" networks:
# networks: - local_network
# - local_network
######################################## ########################################
# shared storage : useful for, e.g. sharing # shared storage : useful for, e.g. sharing
......
...@@ -6,99 +6,30 @@ ...@@ -6,99 +6,30 @@
], ],
"content-hash": "36a2b35c58a5b49561f22d67c89c7c85", "content-hash": "36a2b35c58a5b49561f22d67c89c7c85",
"packages": [ "packages": [
{
"name": "composer/package-versions-deprecated",
"version": "1.11.99.1",
"source": {
"type": "git",
"url": "https://github.com/composer/package-versions-deprecated.git",
"reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6",
"reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.1.0 || ^2.0",
"php": "^7 || ^8"
},
"replace": {
"ocramius/package-versions": "1.11.99"
},
"require-dev": {
"composer/composer": "^1.9.3 || ^2.0@dev",
"ext-zip": "^1.13",
"phpunit/phpunit": "^6.5 || ^7"
},
"type": "composer-plugin",
"extra": {
"class": "PackageVersions\\Installer",
"branch-alias": {
"dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"PackageVersions\\": "src/PackageVersions"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
},
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be"
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"support": {
"issues": "https://github.com/composer/package-versions-deprecated/issues",
"source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2020-11-11T10:22:58+00:00"
},
{ {
"name": "jean85/pretty-package-versions", "name": "jean85/pretty-package-versions",
"version": "1.5.1", "version": "2.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Jean85/pretty-package-versions.git", "url": "https://github.com/Jean85/pretty-package-versions.git",
"reference": "a917488320c20057da87f67d0d40543dd9427f7a" "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/a917488320c20057da87f67d0d40543dd9427f7a", "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
"reference": "a917488320c20057da87f67d0d40543dd9427f7a", "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer/package-versions-deprecated": "^1.8.0", "composer-runtime-api": "^2.0.0",
"php": "^7.0|^8.0" "php": "^7.1|^8.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.0|^8.5|^9.2" "friendsofphp/php-cs-fixer": "^2.17",
"jean85/composer-provided-replaced-stub-package": "^1.0",
"phpstan/phpstan": "^0.12.66",
"phpunit/phpunit": "^7.5|^8.5|^9.4",
"vimeo/psalm": "^4.3"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
...@@ -121,7 +52,7 @@ ...@@ -121,7 +52,7 @@
"email": "alessandro.lai85@gmail.com" "email": "alessandro.lai85@gmail.com"
} }
], ],
"description": "A wrapper for ocramius/package-versions to get pretty versions strings", "description": "A library to get pretty versions strings of installed dependencies",
"keywords": [ "keywords": [
"composer", "composer",
"package", "package",
...@@ -130,49 +61,50 @@ ...@@ -130,49 +61,50 @@
], ],
"support": { "support": {
"issues": "https://github.com/Jean85/pretty-package-versions/issues", "issues": "https://github.com/Jean85/pretty-package-versions/issues",
"source": "https://github.com/Jean85/pretty-package-versions/tree/1.5.1" "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
}, },
"time": "2020-09-14T08:43:34+00:00" "time": "2021-10-08T21:21:46+00:00"
}, },
{ {
"name": "mongodb/mongodb", "name": "mongodb/mongodb",
"version": "1.8.0", "version": "1.12.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/mongodb/mongo-php-library.git", "url": "https://github.com/mongodb/mongo-php-library.git",
"reference": "953dbc19443aa9314c44b7217a16873347e6840d" "reference": "e4a7594ac4b31635fa77455c4038a7013024ba28"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/953dbc19443aa9314c44b7217a16873347e6840d", "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/e4a7594ac4b31635fa77455c4038a7013024ba28",
"reference": "953dbc19443aa9314c44b7217a16873347e6840d", "reference": "e4a7594ac4b31635fa77455c4038a7013024ba28",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-hash": "*", "ext-hash": "*",
"ext-json": "*", "ext-json": "*",
"ext-mongodb": "^1.8.1", "ext-mongodb": "^1.13.0",
"jean85/pretty-package-versions": "^1.2", "jean85/pretty-package-versions": "^1.2 || ^2.0.1",
"php": "^7.0 || ^8.0", "php": "^7.2 || ^8.0",
"symfony/polyfill-php80": "^1.19" "symfony/polyfill-php80": "^1.19"
}, },
"require-dev": { "require-dev": {
"squizlabs/php_codesniffer": "^3.5, <3.5.5", "doctrine/coding-standard": "^9.0",
"symfony/phpunit-bridge": "5.x-dev" "squizlabs/php_codesniffer": "^3.6",
"symfony/phpunit-bridge": "^5.2"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.8.x-dev" "dev-master": "1.12.x-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": {
"MongoDB\\": "src/"
},
"files": [ "files": [
"src/functions.php" "src/functions.php"
] ],
"psr-4": {
"MongoDB\\": "src/"
}
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
...@@ -198,9 +130,9 @@ ...@@ -198,9 +130,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/mongodb/mongo-php-library/issues", "issues": "https://github.com/mongodb/mongo-php-library/issues",
"source": "https://github.com/mongodb/mongo-php-library/tree/1.8.0" "source": "https://github.com/mongodb/mongo-php-library/tree/1.12.0"
}, },
"time": "2020-11-25T12:26:02+00:00" "time": "2022-03-23T20:18:39+00:00"
}, },
{ {
"name": "swiftmailer/swiftmailer", "name": "swiftmailer/swiftmailer",
...@@ -258,20 +190,21 @@ ...@@ -258,20 +190,21 @@
"issues": "https://github.com/swiftmailer/swiftmailer/issues", "issues": "https://github.com/swiftmailer/swiftmailer/issues",
"source": "https://github.com/swiftmailer/swiftmailer/tree/v5.4.12" "source": "https://github.com/swiftmailer/swiftmailer/tree/v5.4.12"
}, },
"abandoned": "symfony/mailer",
"time": "2018-07-31T09:26:32+00:00" "time": "2018-07-31T09:26:32+00:00"
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.20.0", "version": "v1.26.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace",
"reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -280,7 +213,7 @@ ...@@ -280,7 +213,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "1.20-dev" "dev-main": "1.26-dev"
}, },
"thanks": { "thanks": {
"name": "symfony/polyfill", "name": "symfony/polyfill",
...@@ -288,12 +221,12 @@ ...@@ -288,12 +221,12 @@
} }
}, },
"autoload": { "autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"files": [ "files": [
"bootstrap.php" "bootstrap.php"
], ],
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"classmap": [ "classmap": [
"Resources/stubs" "Resources/stubs"
] ]
...@@ -325,7 +258,7 @@ ...@@ -325,7 +258,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0"
}, },
"funding": [ "funding": [
{ {
...@@ -341,7 +274,7 @@ ...@@ -341,7 +274,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2020-10-23T14:02:19+00:00" "time": "2022-05-10T07:21:04+00:00"
} }
], ],
"packages-dev": [], "packages-dev": [],
...@@ -352,5 +285,5 @@ ...@@ -352,5 +285,5 @@
"prefer-lowest": false, "prefer-lowest": false,
"platform": [], "platform": [],
"platform-dev": [], "platform-dev": [],
"plugin-api-version": "2.0.0" "plugin-api-version": "2.3.0"
} }
...@@ -7,4 +7,5 @@ ...@@ -7,4 +7,5 @@
* @author: canals * @author: canals
*/ */
$sample ='hungry heart'; $sample ='hungry heart';
\ No newline at end of file return $sample;
\ No newline at end of file
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* @author: canals * @author: canals
*/ */
require_once __DIR__ . '/../src/sample.php'; $sample = require_once __DIR__ . '/../src/sample.php';
echo <<<EOT echo <<<EOT
<!-- DOCTYPE html--> <!-- DOCTYPE html-->
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
require __DIR__ . '/../src/vendor/autoload.php'; require __DIR__ . '/../src/vendor/autoload.php';
$mailer = new Swift_Mailer( new Swift_SmtpTransport('mail', 1025) ); $mailer = new Swift_Mailer( new Swift_SmtpTransport('mail', 1025, '') );
$message = (new Swift_Message('test subject')) $message = (new Swift_Message('test subject'))
->setFrom( ['john.doe@mix.com'=>'john doe']) ->setFrom( ['john.doe@mix.com'=>'john doe'])
......
...@@ -21,14 +21,12 @@ services: ...@@ -21,14 +21,12 @@ services:
working_dir : /var/www/src working_dir : /var/www/src
networks: networks:
- local_network - local_network
links : depends_on:
- mysql:db - mysql
# - mongo:mongo - postgres
# - mail:mail
# - postgres:pg
php: php:
image: canals/php:8.0-cli image: canals/php:8.1-cli
expose: expose:
- "8000" - "8000"
ports: ports:
...@@ -49,7 +47,6 @@ services: ...@@ -49,7 +47,6 @@ services:
# mysql/mariadb + adminer / can be replaced by mariadb # mysql/mariadb + adminer / can be replaced by mariadb
############################# #############################
mysql: mysql:
# image: mysql:5.6
image: mariadb:latest image: mariadb:latest
container_name: mysql.dev.local container_name: mysql.dev.local
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8_general_ci command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8_general_ci
...@@ -59,7 +56,9 @@ services: ...@@ -59,7 +56,9 @@ services:
- MYSQL_PASSWORD=secure - MYSQL_PASSWORD=secure
- MYSQL_DATABASE=mydatab - MYSQL_DATABASE=mydatab
networks: networks:
- local_network local_network:
aliases:
- db
ports: ports:
- "3603:3306" - "3603:3306"
volumes : volumes :
...@@ -71,9 +70,8 @@ services: ...@@ -71,9 +70,8 @@ services:
- "8080:8080" - "8080:8080"
networks: networks:
- local_network - local_network
links: depends_on:
- mysql:db - mysql
...@@ -81,25 +79,29 @@ services: ...@@ -81,25 +79,29 @@ services:
################################## ##################################
# postgres + adminer # postgres + adminer
################################### ###################################
# postgres: postgres:
# image: postgres image: postgres
# environment : environment :
# - POSTGRES_PASSWORD = pgroot - POSTGRES_PASSWORD = pgroot
# - POSTGRES_USER = pguser - POSTGRES_USER = pguser
# networks: networks:
# - local_network local_network:
# ports: aliases:
# - "5432:5432" - pg
ports:
- "5432:5432"
adminer-pg:
image: adminer
networks:
- local_network
ports:
- "8088:8080"
depends_on:
- postgres
# adminer-pg:
# image: adminer
# networks:
# - local_network
# ports:
# - "8088:8080"
# links:
# - postgres:db
#
################################################ ################################################
# mongodb & mongo-express # mongodb & mongo-express
......
# #
# environment variables exported to the container # environment variables exported to the container
# classical use cas : http proxys when docker runs behind # classical use case : http proxys when docker runs behind
# a corporate proxy # a corporate proxy
# #
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment