我对 Heroku 和 Docker 都很陌生,正在将 Laravel 应用从 Docker 容器部署到 Heroku。
根据我下面的设置,在本地,我在一个容器中运行了三个图像。一切都很棒。
当我推送到 Heroku 时,我使用以下命令:
#heroku container:login
#heroku container:push web --app bmbx-inventory
#heroku container:release web --app bmbx-inventory
我的问题是:我只是使用上述命令推送网络应用程序图像还是仍在推送整个配置?
我的想法是它只使用 Web 应用程序图像,我应该使用不同的 mysql 连接,例如 cleardb。
这是我的配置:
Docker 文件:
FROM php:7
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo pdo_mysql
WORKDIR /app
COPY . /app
RUN composer install
CMD php artisan serve --host=0.0.0.0 --port=$PORT
EXPOSE 8181
docker-compose.yml:
version: '2'
services:
web:
build: .
ports:
- "8009:8000"
volumes:
- .:/app
env_file: .env
working_dir: /app
command: bash -c 'php artisan migrate && php artisan serve --host 0.0.0.0'
depends_on:
- db
links:
- db
db:
image: "mysql:5.7"
environment:
- MYSQL_ROOT_PASSWORD={pass}
- MYSQL_DATABASE={dbname}
- MYSQL_USER=root
- MYSQL_PASSWORD={pass}
volumes:
- ./data/:/var/lib/mysql
ports:
- "3306:3306"
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8090:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: {mypass}