Docker复制或添加会删除现有文件

时间:2018-08-24 18:49:25

标签: docker

我要复制到Docker容器的主机目录中有几个文件。

问题是文件确实被复制到目标,但是目标目录内的所有现有文件都被删除。

在将这些新的ADD行添加到我的Dockerfile之前,我在lib目录中有20个jar文件,通过将这些ADD行添加到下面的两个人群文件中,所有20个现有的jar文件都将被删除,并且该目录现在仅包含两个从主机复制到容器中的大量文件!

我尝试在没有用户ROOT的情况下进行尝试,但是它不会复制server.xml和tomcat.keystore

FROM guacamole/guacamole

RUN sed -i 's/redirectPort="8443"/redirectPort="8443" server="" secure="true"/g' /usr/local/tomcat/conf/server.xml \
&& sed -i 's/<Server port="8005" shutdown="SHUTDOWN">/<Server port="-1" shutdown="SHUTDOWN">/g' /usr/local/tomcat/conf/server.xml \
&& rm -rf /usr/local/tomcat/webapps/docs/*  \
&& rm -rf /usr/local/tomcat/webapps/examples/*  \
&& rm -rf /usr/local/tomcat/webapps/manager/*  \
&& rm -rf /usr/local/tomcat/webapps/host-manager/*

WORKDIR /usr/local/tomcat
USER root
COPY server.xml conf/server.xml
RUN chmod 660 conf/server.xml
USER root
ADD tomcat.keystore /usr/local/tomcat/
RUN chmod 644 tomcat.keystore
RUN chown root:staff /usr/local/tomcat/tomcat.keystore
ADD ./lib/crowd-auth-filter-1.0.0.jar /usr/local/tomcat/webapps/guacamole/WEB-INF/lib/crowd-auth-filter-1.0.0.jar
ADD ./lib/crowd-filter.properties /usr/local/tomcat/webapps/guacamole/WEB-INF/lib/crowd-filter.properties
RUN chmod 644 /usr/local/tomcat/webapps/guacamole/WEB-INF/lib/crowd-filter.properties
ADD web.xml /usr/local/tomcat/webapps/guacamole/WEB-INF/web.xml
CMD /usr/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh

docker-compose.yml:

version: '2'

services:
  guacd:
    hostname: guacd
    image: guacamole/guacd
    restart: always
    container_name: guacd
  mysql:
    hostname: mysql
    image: mysql:5.7
    volumes:
      - ./tmp/scripts:/docker-entrypoint-initdb.d
    restart: always
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_DATABASE="guacamole"
      - MYSQL_USER="guacamole"
      - MYSQL_PASSWORD="password"
      - MYSQL_ROOT_PASSWORD="password"
  guacamole:
    build: .
    image: mine/guacamole
    restart: always
    ports:
      - "8443:8443"
    links:
      - guacd
      - mysql
    container_name: guacamole
    environment:
      - GUACD_HOSTNAME=guacd
      - GUACAMOLE_HOME=/opt/guacamole-home

volumes:
  tmp-scripts:

开始工作: 1)我用docker build . --no-cache -t mine/guacamole

构建鳄梨调味酱图像

2)通过运行以下命令启动容器并创建服务:docker-compose up --force-recreate -d

有人可以帮忙吗?

谢谢

0 个答案:

没有答案