簡體   English   中英

Docker容器中缺少文件夾

[英]Folder missing inside docker container

我寫了這個 docker-compose項目。 docker-compose.yml看起來像這樣:

version: '3.1'

services:
  db:
    image: mysql
    restart: always
    environment:
      - MYSQL_DATABASE=mgsv
      - MYSQL_USER=mgsv_user
      - MYSQL_PASSWORD=mgsvpass
      - MYSQL_ROOT_PASSWORD=mysql123
    volumes:
      - ./mysql:/docker-entrypoint-initdb.d

  www:
    build: ./mGSV 
    restart: always
    ports:
      - 8080:8080

Dockerfile基於一個PHP容器,看起來像這樣。

FROM php:5-apache

RUN apt-get update  && apt-get install -y --no-install-recommends \
                openjdk-7-jdk \
                maven  \
        git \
        && rm -rf /var/lib/apt/lists/*

RUN git clone https://github.com/qunfengdong/mGSV.git

# Move the folder 'mgsv' to DocumentRoot of Apache web server. By default, the DocumentRoot of Apache is /var/www/ (speak to the system administrator to know the exact DocumentRoot).
RUN cd /var/www/html/mGSV \
    && mkdir tmp \
    && chmod -R 777 tmp

RUN cd /var/www/html/mGSV && sed -i.bak "s|'gsv'|'mgsv_user'|" lib/settings.php \ 
    && sed -i.bak "s|$database_pass = ''|$database_pass = 'mgsvpass'|" lib/settings.php \
    && sed -i.bak "s|cas-qshare.cas.unt.edu|localhost|" lib/settings.php

RUN cp /var/www/html/mGSV/Arial.ttf /usr/share/fonts/truetype/

RUN cd /var/www/html/mGSV/ws \
    && tar -xzf mgsv-ws-server.tar.gz

RUN cd /var/www/html/mGSV/ws/mgsv-ws-server \ 
    && mvn package

RUN cp -f /var/www/html/mGSV/ws/mgsv-ws-server/target/ws-server-1.0RC1-jar-with-dependencies.jar /var/www/html/mGSV/ws/

RUN cd /var/www/html/mGSV/ws \ 
    && echo "mgsv_upload_url=http://localhost/mgsv" > config.properties \
    && echo "ws_publish_url=http\://localhost\:8081/MGSVService" >> config.properties \
    && java -jar ws-server-1.0RC1-jar-with-dependencies.jar &

這是我得到的輸出:

Step 1/11 : FROM php:5-apache
 ---> 8f4a38cf4542
Step 2/11 : RUN apt-get update  && apt-get install -y --no-install-recommends                 openjdk-7-jdk                 maven       git         && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> f194797b9362
Step 3/11 : RUN git clone https://github.com/qunfengdong/mGSV.git
 ---> Using cache
 ---> 4acd066da444
Step 4/11 : RUN cd /var/www/html/mGSV     && mkdir tmp     && chmod -R 777 tmp
 ---> Using cache
 ---> f766f9ceb7d3
Step 5/11 : RUN cd /var/www/html/mGSV && sed -i.bak "s|'gsv'|'mgsv_user'|" lib/settings.php     && sed -i.bak "s|$database_pass = ''|$database_pass = 'mgsvpass'|" lib/settings.php     && sed -i.bak "s|cas-qshare.cas.unt.edu|localhost|" lib/settings.php
 ---> Using cache
 ---> 007dff8907f4
Step 6/11 : RUN cp /var/www/html/mGSV/Arial.ttf /usr/share/fonts/truetype/
 ---> Using cache
 ---> 026049ca32d8
Step 7/11 : RUN cd /var/www/html/mGSV/ws     && tar -xzf mgsv-ws-server.tar.gz
 ---> Using cache
 ---> 92a0f85b27a0
Step 8/11 : RUN cd /var/www/html/mGSV/ws/mgsv-ws-server     && mvn package
 ---> Using cache
 ---> 5aa1723f255f
Step 9/11 : RUN cp -f /var/www/html/mGSV/ws/mgsv-ws-server/target/ws-server-1.0RC1-jar-with-dependencies.jar /var/www/html/mGSV/ws/
 ---> Using cache
 ---> f0dbd0ac1ddb
Step 10/11 : RUN cd /var/www/html/mGSV/ws     && echo "mgsv_upload_url=http://localhost/mgsv" > config.properties     && echo "ws_publish_url=http\://localhost\:8081/MGSVService" >> config.properties     && java -jar ws-server-1.0RC1-jar-with-dependencies.jar &
 ---> Using cache
 ---> 0c86c0adddd5

但是,當我創建一個交互式會話時, /var/www/html/為空:

$ docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
php                                    5-apache            8f4a38cf4542        7 days ago          374MB

$ sudo docker run --entrypoint /bin/bash -i -t 8f4a38cf4542
root@a3908e297bcf:/var/www/html# ls

為什么在/var/www/html/mGSV容器內看不到/var/www/html/mGSV文件夾?

先感謝您。

米哈爾

8f4a38cf4542圖像是php:5-apache基礎映像您正在構建FROM所有的附加文件之前。

Successfully built eccdcc9a9534 docker-compose構建輸出應包括以下一行: Successfully built eccdcc9a9534最后,這是您需要從輸出中復制並使用的映像ID。 您應該能夠在完整的輸出中找到此圖像:

docker images -a

為了使生活更輕松,請在www服務中添加一個image名稱,以便對構建進行標記,並且易於訪問:

www:
  build: ./mGSV
  image: user3523406/www
  restart: always

然后

sudo docker run --entrypoint /bin/bash -it user3523406/www

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM