首页 > 解决方案 > 无法将 docker 容器中的 fusionauth 卷公开给主机

问题描述

我在他们的文档中使用了 fusionauth 建议的 docker compose(https://fusionauth.io/docs/v1/tech/installation-guide/docker)。

我的撰写文件

version: '3.1'

services:
  postgres_db:
    container_name: postgres_db
    image: postgres:9.6
    environment:
      PGDATA: /var/lib/postgresql/data/pgdata
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    ports:
      - ${POSTGRES_PORT}:5432
    networks:
      - postgres_db
    restart: unless-stopped
    volumes:
      - ${VOLUMES_DIR}/postgres_data:/var/lib/postgresql/data

  es_search:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.1
    container_name: es_search
    environment:
      - cluster.name=fusionauth
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=${ES_JAVA_OPTS}"
    ports:
      - ${ES1_PORT}:9200
      - ${ES_PORT}:9300
    networks:
      - es_search
    restart: unless-stopped
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ${VOLUMES_DIR}/es_data:/usr/share/elasticsearch/data

  fusionauth:
    image: fusionauth/fusionauth-app:1.14.0
    container_name: fusionauth
    depends_on:
      - postgres_db
      - es_search
    environment:
      DATABASE_URL: jdbc:postgresql://postgres_db:5432/fusionauth
      DATABASE_ROOT_USER: ${POSTGRES_USER}
      DATABASE_ROOT_PASSWORD: ${POSTGRES_PASSWORD}
      DATABASE_USER: ${DATABASE_USER}
      DATABASE_PASSWORD: ${DATABASE_PASSWORD}                                                                                                                                  
      FUSIONAUTH_MEMORY: ${FUSIONAUTH_MEMORY}
      FUSIONAUTH_SEARCH_SERVERS: http://es_search:9200                                                                                                                         
      FUSIONAUTH_URL: http://fusionauth:9011                                                                                                                                   
      FUSIONAUTH_KICKSTART: "/usr/local/fusionauth/fusionauth_kickstart.json"
      FUSION_AUTH_API_KEY: ${FUSION_AUTH_API_KEY}
      FUSION_AUTH_APP_ID: ${FUSION_AUTH_APP_ID}
      FUSION_AUTH_LAMBDA_ID: ${FUSION_AUTH_LAMBDA_ID}
      FUSION_AUTH_GOOGLE_CLIENT_ID: ${FUSION_AUTH_GOOGLE_CLIENT_ID}
      FUSION_AUTH_GOOGLE_CLIENT_SECRET: ${FUSION_AUTH_GOOGLE_CLIENT_SECRET}
    networks:
     - fusionauth
     - postgres_db
     - es_search
    restart: unless-stopped
    ports:
      - ${FUSIONAUTH_PORT}:9011
    volumes:
      - fusionauth_data:/usr/local/fusionauth/config
      - ${FUSIONAUTH_KICKSTART}:/usr/local/fusionauth/fusionauth_kickstart.json

networks:
  fusionauth:
  postgres_db:
  es_search:

volumes:
  fusionauth_data:

在 fusionauth 服务的卷中,有这条线fusionauth_data:/usr/local/fusionauth/config创建了名为 fusionauth_data 的 docker 卷。

但我想将它安装到我的主机中的某个位置。因此,我尝试进行如下修改。 /etc/project/fusionauth_data:/usr/local/fusionauth/config并删除了文件末尾的卷部分。

当我尝试启动容器时,fusionauth 没有启动并且它抛出错误。 在此处输入图像描述

有人可以帮助我从容器内部将该卷安装到主机吗?

标签: docker-composedocker-volumefusionauth

解决方案


推荐阅读