Docker - HSQL-DB 图像卷挂载不起作用

问题描述

我正在尝试在 docker 上创建一个 Hsql 映像并将其连接到 hybris :

  1. Docker-compose.yml
version: '3'
services:
  hybris_hsql:
    # will build ./docker/hybris/Dockerfile
    build:
        context: ./
        dockerfile: ./docker/hsql/Dockerfile
    mem_reservation: 2g
    ports:
     - "3308:3308"
    volumes:
     - hsql-data:/var/opt/hsqldb/data/db0/db0
  hybris_docker:
    # will build ./docker/hybris/Dockerfile
    build:
        context: ./
        dockerfile: ./docker/hybris/Dockerfile
    depends_on:
     - hybris_hsql
    mem_reservation: 6g
    ports:
     - "9001:9001"
     - "9002:9002"
     - "8000:8000"
    volumes:
     - hybris-data:/hybris/data
     - hybris-media:/var/lib/media
volumes:
    hsql-data:
    hybris-data:
    hybris-media:
  1. Server.properties
server.database.0 = file:/var/opt/hsqldb/data/db0/db0
server.dbname.0   = db0
  1. Hsql Docker 文件
FROM openjdk:11-jdk-slim

ENV MVN_CENTRAL_URL https://repo1.maven.org/maven2
ENV HsqlDB_MVN_GRP org/hsqldb
ENV HsqlDB_VERSION 2.4.1
ENV LOG4J_VERSION 1.2.17

RUN apt-get update \                                                                                                                                                                                                                        
&& apt-get install -y ca-certificates \                                                                                                                                                                                                      
&& update-ca-certificates \
&& apt-get install -y wget \ 
&& mkdir -p /opt/hsqldb/lib \
&& wget -O /opt/hsqldb/lib/hsqldb.jar \
   "${MVN_CENTRAL_URL}/${HsqlDB_MVN_GRP}/hsqldb/${HsqlDB_VERSION}/hsqldb-${HsqlDB_VERSION}.jar" \
&& wget -O /opt/hsqldb/lib/sqltool.jar \
   "${MVN_CENTRAL_URL}/${HsqlDB_MVN_GRP}/sqltool/${HsqlDB_VERSION}/sqltool-${HsqlDB_VERSION}.jar" \
&& wget -O /opt/hsqldb/lib/log4j.jar \
   "${MVN_CENTRAL_URL}/log4j/log4j/${LOG4J_VERSION}/log4j-${LOG4J_VERSION}.jar" \
&& mkdir -p /etc/opt/hsqldb/conf \
&& mkdir -p /var/opt/hsqldb/sql \
&& mkdir -p /var/opt/hsqldb/data \
&& mkdir -p /var/opt/hsqldb/run

RUN addgroup hsqldb
RUN useradd -g hsqldb hsqldb 

copY docker/hsql/conf/ /etc/opt/hsqldb/conf/

RUN chown hsqldb:hsqldb -R /opt/hsqldb \
&& chown hsqldb:hsqldb -R /var/opt/hsqldb \
&& chown hsqldb:hsqldb -R /etc/opt/hsqldb

EXPOSE 9001
USER hsqldb
CMD [ "java","-cp","/opt/hsqldb/lib/*:/etc/opt/hsqldb/conf",\"org.hsqldb.server.Server","--props",\
"/etc/opt/hsqldb/conf/server.properties"]

当我在 hybris 中初始化时,它连接到 Hsql 数据库并创建数据,但 Hsql 文件未在安装位置生成。发布 docker-compose down 所有数据都丢失了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)