我创建了一个简单的待办事项列表 apache/php/mysql Web 应用程序,其中包含 2 个 docker 容器(一个 apache/php/code 和一个 mysql)。然后我在 docker hub 上创建了一个包含 php 代码的镜像。
如果有人想部署我的应用程序,则必须:
我不确定以这种方式分发公共应用程序是否是最佳实践。我想简化这个过程。我想我可以首先删除创建 000-default.conf 文件的需要,但我真的不知道如何开始。任何想法或建议将不胜感激。谢谢!
编辑以下大卫评论:
apache 配置文件非常简单。看起来像这样:
<VirtualHost *:80>
ServerName XXXXXX
DocumentRoot /var/www/html
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName XXXXXX
DocumentRoot /var/www/html
SSLCertificateFile /etc/apache2/ssl/fullchain.pem
SSLCertificateKeyFile /etc/apache2/ssl/privkey.pem
SSLEngine on
</VirtualHost>
</IfModule>
我看到两个问题:
我成功地做了我想做的事。我只需要在我的 apache 配置文件中创建一个变量:
<VirtualHost *:80>
ServerName ${SERVER_NAME}
DocumentRoot /var/www/html
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName ${SERVER_NAME}
DocumentRoot /var/www/html
SSLCertificateFile /etc/apache2/ssl/fullchain.pem
SSLCertificateKeyFile /etc/apache2/ssl/privkey.pem
SSLEngine on
</VirtualHost>
</IfModule>
复制配置文件构建镜像:
# Copy apache config
COPY ./000-default.conf /etc/apache2/sites-available/000-default.conf
从 .env 传递值:
SERVER_NAME=mydomain.com
到 docker-compose.yml :
environment:
SERVER_NAME: ${SERVER_NAME}