Docker 容器中的 Grails 应用 运行 未使用本地包

Grails App running in Docker Container not using Local Packages

我目前正在尝试 运行 我们在 Grails 2.3.11 中的应用程序通过 docker-与数据库组合。我已经启动了数据库并且 运行ning 没有问题,而且应用程序容器设置了 grails 并开始了编译过程,但是每次我停止并重新启动包时它都会继续下载所有包。这成为一个问题,因为我们必须下载如此多的包(而且由于 Grails 2,我们必须解决很多错误)。我试图将我的本地 grails 文件夹挂载到容器中以使其 运行 脱离那些文件夹,但它似乎没有任何成功。有什么明显的我做错了,或者我可以通过某种方式轻松检查问题出在哪里吗?

我还试图将所有本地数据库信息映射到有问题的 mysql 容器中。但我还没有深入研究它,如果你在那里看到一个明显的问题,那将会有所帮助。

docker-compose.yml:

version: '2'
services:
  grails:
    image: ibbrussell/grails:2.3.11
    command: run-app
    volumes:
      - ~/.m2:/home/developer/.m2
      - ~/.gradle:/home/developer/.gradle
      - ~/.grails:/home/developer/.grails
      - ./:/app
    ports:
      - "8080:8080" #Grails default port
      - "5005:5005" #Grails debug port
    links:
      - db
    deploy:
      resources:
        limits:
          memory: 4G
        reservations:
          memory: 4G
  db:
    image: mysql:5.6
    container_name: grails_mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: 1
      MYSQL_DATABASE: grails
    volumes:
      - "/usr/local/mysql/data:/var/lib/mysql"

Docker 文件:

FROM java:8

# Set customizable env vars defaults.
ENV GRAILS_VERSION 2.3.11

# Install Grails
WORKDIR /usr/lib/jvm
RUN wget https://github.com/grails/grails-core/releases/download/v$GRAILS_VERSION/grails-$GRAILS_VERSION.zip && \
    unzip grails-$GRAILS_VERSION.zip && \
    rm -rf grails-$GRAILS_VERSION.zip && \
    ln -s grails-$GRAILS_VERSION grails

# Setup Grails path.
ENV GRAILS_HOME /usr/lib/jvm/grails
ENV PATH $GRAILS_HOME/bin:$PATH
ENV GRAILS_OPTS="-XX:MaxPermSize=4g -Xms4g -Xmx4g"

# Create App Directory
RUN mkdir /app

# Set Workdir
WORKDIR /app

# Set Default Behavior
ENTRYPOINT ["grails"]

所以我使用的映射最终不正确。我正在从 1 篇文章中进行文件映射,并在尝试另一个工作映射后结束工作。我在下面进行了切换:

原文:

volumes:
      - ~/.m2:/home/developer/.m2
      - ~/.gradle:/home/developer/.gradle
      - ~/.grails:/home/developer/.grails
      - ./:/app

新:

volumes:
      - ~/.m2:/root/.m2
      - ~/.gradle:/root/.gradle
      - ~/.grails:/root/.grails
      - ./:/app