Dockerfile里執行RUN chown 不起作用?


Dockerfile如下:主要是安裝solr,並且安裝分詞器,不想手動配置分詞器

FROM solr:8.6.2
MAINTAINER zhenhunfan <564090302@qq.com>

# 創建 Core
USER root     #因為下面要創建目錄,沒有權限,因此用root用戶
WORKDIR /var/solr/data
RUN mkdir ik_core
WORKDIR /var/solr/data/ik_core
RUN echo 'name=ik_core' > core.properties
RUN mkdir data
COPY data /var/solr/data/ik_core/data
RUN mkdir conf
COPY conf /var/solr/data/ik_core/conf

# 安裝中文分詞
WORKDIR /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
ADD ik-analyzer-8.3.0.jar .
ADD ik-analyzer-solr7-7.x.jar .
ADD solr-dataimporthandler-8.4.0.jar .
ADD solr-dataimporthandler-extras-8.4.0.jar .

WORKDIR /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF
RUN mkdir classes
WORKDIR /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/classes
ADD ext.dic .
ADD stopword.dic .
ADD IKAnalyzer.cfg.xml .

RUN cp /opt/solr-8.6.2/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.6.2.jar /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/

# 增加分詞配置
COPY managed-schema /var/solr/data/ik_core/conf
COPY solrconfig.xml /var/solr/data/ik_core/conf
COPY core.properties /var/solr/data/ik_core
chown -R solr:solr /var/solr/data/ik_core/
USER solr
WORKDIR /opt/solr-8.6.2

docker-compose.yml如下:

version: '3.1'
services:
  solr:
    build: ikanalyzer
    restart: always
    container_name: solr
    ports:
      - 8983:8983
    volumes:
      - ./solrdata:/opt/solrdata

但是跑起來后,發現RUN chown -R solr:solr /var/solr/data/ik_core 不起作用,所有者還是root,不知道該怎么辦了

解決方法:先把ik_core文件夾組織好,然后通過下面一句話copy進去

COPY --chown=solr:solr ik_core /var/solr/data/ik_core

完整的Dockerfile如下:

FROM solr:8.6.2
MAINTAINER zhenhunfan <564090302@qq.com>

# 創建 Core
USER root
WORKDIR /var/solr/data
RUN mkdir ik_core
COPY --chown=solr:solr ik_core /var/solr/data/ik_core

# 安裝中文分詞
WORKDIR /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
ADD ik-analyzer-8.3.0.jar .
ADD ik-analyzer-solr7-7.x.jar .
ADD solr-dataimporthandler-8.4.0.jar .
ADD solr-dataimporthandler-extras-8.4.0.jar .

WORKDIR /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF
RUN mkdir classes
WORKDIR /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/classes
ADD ext.dic .
ADD stopword.dic .
ADD IKAnalyzer.cfg.xml .

RUN cp /opt/solr-8.6.2/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.6.2.jar /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/


USER solr
WORKDIR /opt/solr-8.6.2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM