最近在研究Docker,正好也想学习一下Laravel,但每次laravel的部署很麻烦,所以正在研究了一下,做一下Docker镜像,感觉棒棒的~~~
Dockerfile
laravel一键安装包http://laravelacademy.org/resources-download
FROM ubuntu
MAINTAINER lizhihua11
ENV REFRESHED 2016-09-20
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LC_ALL en_US.UTF-8
RUN apt update && apt install -y language-pack-en-base software-properties-common tar lrzsz curl wget vim htop git && locale-gen en_US.UTF-8 && add-apt-repository ppa:ondrej/php -y
RUN apt update && apt install -y php7.0 php7.0-mysql php7.0-curl php7.0-xml php7.0-mcrypt php7.0-gd php7.0-mbstring php7.0-fpm
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
RUN echo 'mysql-server mysql-server/root_password password root' | debconf-set-selections
RUN echo 'mysql-server mysql-server/root_password_again password root' | debconf-set-selections
RUN apt install -y mysql-server nginx
RUN sed -i s/^\;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g /etc/php/7.0/fpm/php.ini
ADD ./nginx/default /etc/nginx/sites-available/default
ADD ./laravel-v5.2.15.tgz /var/www/
RUN chown -R www-data:www-data /var/www
EXPOSE 22 80 443
nginx配置文件
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/laravel-v5.2.15/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
使用说明
#生成镜像
sudo docker build -t laravel5.2 .
#运行容器
sudo docker run -ti --rm -p 10080:80 --name laravel_ubuntu laravel5.2 /bin/bash
# /etc/init.d/php7.0-fpm start
# /etc/init.d/nginx start