|
20141206234218_104.png (170.93 KB, Downloads: 37)
Download attachment
Upload
In program development, only one technology is definitely not enough. many applications need to be developed using multiple technologies. Today, let's talk about how to build a Linux + Apache + MySQL + PHP application using a Docker image based on the LAMP technology stack.
1. create a php Development Application Container
First, select the official PHP image as the basic image of the project.
Dockerfile
From mdaocloud. io/php: 5.6-apache
Next, use the built-in command docker-PHP-ext-install in the official php image to install the MySQL extension dependency of PHP.
Dockerfile
RUNdocker-php-ext-install pdo_mysql
The dependency package is installed through docker-php-ext-install. if the dependency package requires parameter configuration, run the docker-php-ext-configure command.
Install the pdo_mysql PHP extension.
Then, copy the code to the target directory.
Dockerfile
COPY./var/www/html/
Because the exposed port and startup command have been declared in the basic image, this can be omitted.
So far, Docker containers including PHP application development are ready. Parameters required to access the database in PHP code are declared by reading environment variables.
"Php
$ ServerName = env ("MYSQL_PORT_3306_TCP_ADDR", "localhost ");
$ DatabaseName = env ("MYSQL_INSTANCE_NAME", "homestead ");
$ Username = env ("MYSQL_USERNAME", "homestead ");
$ Password = env ("MYSQL_PASSWORD", "secret ");
/**
* Get environment variables
* @ Param $ key
* @ Param null $ default
* @ Returnnull | string
*/
Functionenv ($ key, $ default = null)
{
$ Value = getenv ($ key );
If ($ value = false ){
Return $ default;
Www.maiziedu.com
}
Return $ value;
}
"
Why? Because in the best practices of Docker application development, stateful data services are usually run in another container, container-specific link mechanism is used to dynamically Connect Application containers with data containers.
2. bind a local MySQL data container
First, create a MySQL container.
Bash
Docker run -- name some-mysql-e MYSQL_ROOT_PASSWORD = my-secret-pw-d daocloud. io/mysql: 5.5
Then, the default port (3306) of MySQL can be exposed to the application container through the link mechanism between Docker containers.
Bash
Docker run -- name some-app -- link some-mysql: mysql-d app-that-uses-mysql
3. bind the cloud MySQL data service
Compared with local creation, it is easier to create and bind MySQL data services on the cloud.
A. on GitHub, Fork DaoCloud/php-apache-mysql-sample or add your own code repository.
B. register as a DaoCloud user.
C. on the DaoCloud console, select code build 」.
D. create a new project, select the code source, and start to build the image.
E. create a MySQL service instance in service integration.
F. associate the built application image with the MySQL service instance and deploy it on the cloud.
The above is the specific operation steps for Docker-based applications through PHP + MySQL. if you have any questions, try it yourself.
Recommended Learning: php video tutorial http://www.maiziedu.com/course/php/
|