我是Docker的新手,试图在本地实现简单的内腔应用程序。
文档:
FROM php:8.1 as php
WORKDIR /var/www
COPY ./ /project
COPY . .
COPY --from=composer:2.4.2 /usr/bin/composer /usr/bin/composerdocker-composer.yml:
version: "20.10"
services:
# PHP Service
php:
build:
context: .
target: php
args:
- APP_ENV=${APP_ENV}
environment:
- APP_ENV=${APP_ENV}
- CONTAINER_ROLE=app
working_dir: /var/www
volumes:
- ./:/var/www
ports:
- 8000:8000
# Libre Office Service
libreoffice:
image: lscr.io/linuxserver/libreoffice:latest
container_name: libreoffice
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./:/var/www
ports:
- 3000:3000
restart: unless-stopped一切正常,但我无法将项目复制到libreoffice容器中的自定义目录。
当我用libreoffice访问docker exec -it libreoffice /bin/bash容器时,我在这里看不到project目录。但是在/var/www目录中,我的本地计算机中有所有的目录。
,您可能会问,为什么要将项目复制到不同的目录?
因为我在libreoffice容器中运行以下命令:
docker exec libreoffice soffice --headless --invisible --convert-to pdf --outdir "var/www/PhpstormProjects/document-converter/public/tmp" "var/www/PhpstormProjects/document-converter/public/tmp/hi.docx"但是在这个命令中,我不想像var/www/PhpstormProjects/document-converter/public/tmp那样指定我的路径。
因为当我将它上传到实时服务器时,目录将发生变化,并且无法正常工作。这意味着每次我更改项目路径时,我也需要在代码中更改路径。
请让我知道我做错了什么,或者我能做什么。
发布于 2022-10-07 11:04:07
借助@Mihai,我发现:
正如我在顶部定义的那样,COPY中的Dockerfile与php服务相关:
FROM php:8.1 as php它与libreoffice服务无关。要将我的项目COPY为libreoffice服务,我需要在docker-compose.yml文件中为它定义卷,如下所示:
# Libre Office Service
libreoffice:
image: lscr.io/linuxserver/libreoffice:latest
container_name: libreoffice
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./:/project # You can define any directory you want
ports:
- 3000:3000
restart: unless-stoppedhttps://stackoverflow.com/questions/73932828
复制相似问题