【问题标题】:Bitnami Magento site always point to port 80 for any linksBitnami Magento 站点始终指向端口 80 的任何链接
【发布时间】:2017-03-20 23:33:15
【问题描述】:

我是这个领域的新手。我有一个启动 Magento 和 MariaDB dockers 容器的 docker-compose.yml 文件。这是脚本:

version: '2'
services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
  magento:
    image: 'bitnami/magento:latest'
    environment:       
      - ENVIRONMENT=Test3
    ports:
      - '89:80' #for Test3              
    volumes:
      - 'magento_data:/bitnami/magento'
      - 'apache_data:/bitnami/apache'
      - 'php_data:/bitnami/php'
    depends_on:
      - mariadb
volumes:
  mariadb_data:
    driver: local
  magento_data:
    driver: local
  apache_data:
    driver: local
  php_data:
    driver: local

我尝试将http://127.0.0.1:89 用于该站点,但它确实在一开始就发生了(例如,我可以使用 URL:http://127.0.0.1:89 打开站点)。但是,当我查看页面源代码时,我发现这些样式/js 仍然指向 http://127.0.0.1(端口 80)之一。我也无法访问它的其他页面,例如http://120.0.0.1:89/admin。

然后我谷歌,例如一些帖子提到我需要更改我所做的“core_config_data”表中的 base_url 值(https://magento.stackexchange.com/questions/39752/how-do-i-fix-my-base-urls-so-i-can-access-my-magento-site)。我确实清除了 Magento 和 MariaDB 容器上的 var/cache 文件夹,但结果仍然相同。 (我没有找到该链接提到的 var/session 文件夹。可能在 Bitnami 系统和其他系统之间有点不同。)

那我现在怎么试?而且无论如何我可以在我的 docker-compose.yml 文件中一开始就将 base_url 设置为 MariaDB 的正确端口吗?

附:如果使用默认端口 80,一切正常。

非常感谢!

【问题讨论】:

    标签: magento mariadb magento2 bitnami


    【解决方案1】:

    你可以通过这种方式在docker-compose.yml文件中指明Apache应该监听的端口:

    version: '2'
    
    services:
      mariadb:
        image: 'bitnami/mariadb:latest'
        environment:
          - ALLOW_EMPTY_PASSWORD=yes
        volumes:
          - 'mariadb_data:/bitnami/mariadb'
      magento:
        image: 'bitnami/magento:latest'
        ports:
          - '89:89'
          - '443:443'
        environment:
          - APACHE_HTTP_PORT=89
        volumes:
          - 'magento_data:/bitnami/magento'
          - 'php_data:/bitnami/php'
          - 'apache_data:/bitnami/apache'
        depends_on:
          - mariadb
    
    volumes:
      mariadb_data:
        driver: local
      magento_data:
        driver: local
      apache_data:
        driver: local
      php_data:
        driver: local
    

    请注意在 Magento 容器上使用 APACHE_HTTP_PORT 环境变量。另请注意,在这种情况下,port 转发应为89:89。

    请注意,首次启动容器时应执行此更改。这意味着,如果您已经有一些卷,则此方法将不起作用,因为您的配置将从这些卷中恢复。因此,请确保您没有任何音量。你可以通过执行来检查它

    docker volume ls
    

    并检查是否没有任何名为

    的卷
    local               DATE_apache_data
    local               DATE_magento_data
    local               DATE_mariadb_data
    

    此外,您还可以删除正在执行的卷:

    docker-compose down -v
    

    【讨论】:

    • 嗨,何塞,效果很好!还有一个问题:如果您使用“docker-compose down -v”,它会删除所有卷吗?通常我使用“docker volume rm xxxxxxx”来删除某个卷。你知道我是否可以使用通配符来删除命令吗? (例如,卷名通常具有相同的前缀。)再次感谢!
    • 命令docker-compose down -v 只会删除docker-compose.yml 文件中定义的服务创建的卷。如果您只想删除单个卷或任何卷,您可以使用经典的docker volume rm VOLUME。此外,从 docker 1.13 开始,有 docker volume prune 命令可以删除系统上的所有悬空卷。另一方面,如果你想删除一些名称中有特定模式的卷,你可以使用类似docker volume rm $(docker volume ls | egrep PATTERN | awk "{print \$2}")
    • 非常感谢朋友!
    猜你喜欢
    • 1970-01-01
    • 2016-03-10
    • 2012-06-12
    • 2018-06-11
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    相关资源
    最近更新 更多