所以我在docker中尝试bitnami codeigniter image。我的项目看起来像这样:
my-source-code
|Dockerfile
|hello-world.php
|Home.php
docker-compose.yml
我的docker-compose.yml看起来像这样:
# Copyright VMware, Inc.
# SPDX-License-Identifier: APACHE-2.0
version: '2'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.6
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_myapp
- MARIADB_DATABASE=bitnami_myapp
volumes:
- './my-database:/bitnami/mariadb'
my-docker-app:
build: ./my-souce-code
ports:
- '8000:8000'
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
- CODEIGNITER_DATABASE_HOST=mariadb
- CODEIGNITER_DATABASE_PORT_NUMBER=3306
- CODEIGNITER_DATABASE_USER=bn_myapp
- CODEIGNITER_DATABASE_NAME=bitnami_myapp
volumes:
- './my-docker-project:/app'
depends_on:
- mariadb
它假设构建codeigniter图像,然后将默认的欢迎屏幕更改为Hello World。我在my-source-code
中的Dockerfile看起来像这样:
FROM bitnami/codeigniter:4
COPY hello_world.php ./my-docker-app/app/Views/hello_world.php
COPY Home.php ./my-docker-app/app/Controllers/Home.php
当我运行docker compose up
时,似乎它执行了这个Dockerfile,我看到一个通知说它已经复制了两个文件。该位置应该挂载在本地,所以我尝试检查该位置,但什么也没有找到。看起来像是先复制它,然后再构建codeigniter。有人能解释一下如何在codeigniter构建完成后执行拷贝吗
1条答案
按热度按时间u5rb5r591#
事实上,我在这道题上做得很差。我可以把所有东西都放在文件夹上,然后用挂载的文件夹构建docker,而不是试图复制它。