在这个例子中,我们将运行composer来安装Symfony应用程序的依赖项,然后将vendor 文件夹和其他应用程序文件复制到容器镜像中。通过这种方式,我们的镜像将总是默认带有应用程序,所以我们所要做的就是创建一个容器并开始使用它。这是一个众所周知的做法,但我只想谈谈一个基本的实现。其主要目的是隔离应用程序代码,不将其暴露在主机操作系统上。我不打算在这里列举这些好处,因为它们都已经在互联网上写过了。这个解决方案的主要问题是,最终的docker镜像的大小将取决于应用程序和vendor 文件夹的大小。
结构
.
文件
我只是展示了重要文件的内容。其余的就不太重要了。
.dockerignore
config/packages/dev/
docker-compose.yml
version: "3.4"
制作文件
build:
nginx/Dockerfile
FROM nginx:1.15.8-alpine
php/Dockerfile
#
php/init.sh
#!/bin/sh
构建和检查
$ make -sC docker/ build up
$ docker images
$ docker ps
$ docker exec -it docker_sport_nginx_1 ls -l public
$ docker exec -it docker_sport_php_1 ls -la
如果你在终端运行$ curl -i 0.0.0.0:1080 命令,应用程序应该可以工作。