我是码头工的新手,所以这对你来说似乎是非常基本的 - 无论如何 - 它此刻吓坏了我。
我决定在容器上开发一个新的web项目,当然我想到了docker。完成教程并阅读一些Dockerfiles之后,我决定使用docker-compose。
我想要多个撰写文件,一个用于开发,一个用于生产,等等。现在我设法使用3种不同的服务来编排基本的php / mysql / redis应用程序。主要的应用程序是基于PHP并在项目src中维护。 Mysql和Redis只是配置了基本映像,不需要任何业务逻辑。
我可以用
构建容器并将其启动构建
docker-compose -f compose-Development.yml build
向上:
docker-compose -f compose-Development.yml up
主应用程序容器中的许多文件都是由gulp(templates,css等)构建的,代码将存在于javascript和php中。
我注意到,当我更改文件时,我的应用状态不会改变。我必须重建并重新启动我的容器。
对Vagrant有一些经验,我会在开发期间寻找某种共享源。但我怎么能实现呢?
我的应用程序Dockerfile(用于开发)如下所示:
FROM webdevops/php-nginx:7.1
COPY ./ /app
COPY docker/etc/ /opt/docker/etc
# php config...
RUN ln -sf /opt/docker/etc/php/php.Development.ini /opt/docker/etc/php/php.ini
WORKDIR /app/
EXPOSE 80
撰写文件:
version: "3"
services:
app:
build:
context: .
dockerfile: Dockerfile.Development
links:
- mysql
- redis
volumes:
- ./data/fileadmin:/app/public/fileadmin
- ./data/uploads:/app/public/uploads
env_file:
- docker/env/All.yml
- docker/env/Development.yml
ports:
- "80:80"
restart: always
# Mysql Container
mysql:
build:
context: docker/mysql/
dockerfile: Dockerfile
restart: always
volumes:
- mysql:/var/lib/mysql
env_file:
- docker/env/All.yml
- docker/env/Development.yml
# Cache Backend Container
redis:
build:
context: docker/redis/
dockerfile: Dockerfile
ports:
- "6379:6379"
volumes:
- redis:/data
env_file:
- docker/env/All.yml
- docker/env/Development.yml
restart: always
volumes:
mysql:
redis:
到目前为止,我使用了一些github存储库来复制块。我知道我的设置中可能还有其他问题,目前最阻塞的问题是链接/复制源的问题。
亲切的问候, 菲利普