在docker容器内手动启动plone 6实例

问题描述 投票:0回答:1

基于示例此处我添加了

entrypoint: sh -c 'tail -f /dev/null'

version: "3"
services:

  backend:
    image: plone/plone-backend:6.0
    restart: always
    environment:
      ZEO_ADDRESS: zeo:8100
    ports:
    - "8080:8080"
    depends_on:
      - zeo
    entrypoint: sh -c 'tail -f /dev/null'

  zeo:
    image: plone/plone-zeo:latest
    restart: always
    volumes:
      - data:/data
    ports:
    - "8100:8100"

volumes:
  data: {}

我像往常一样使用

docker-compose up
启动应用程序,然后运行
docker-compose exec backend bash
。现在我找不到启动实例的方法。我期望类似的东西:
bin/instace fg

我尝试了很多次但没有成功。不使用

build: .
,不使用基于
Dockerfile
+
plone/plone-backend:6.0
的新
buildout.cfg
等。我觉得它应该很简单,但只是无法弄清楚。

我发现了这个:https://community.plone.org/t/interactive-shell-for-debugging-with-plone-6-docker-compose-the-wsgi-equivalent-of-bin-instance-debug/ 16370

但就我而言,我不想要这种方式的调试模式。我的目标是使用 vim 编辑 Egg 中的一些文件,添加一些 pdb,然后我想在前台模式下启动实例,以研究某些功能是如何工作的。我在 Plone 4 中经常这样做。我如何在 Plone 6 中执行此操作?

docker plone plone-6
1个回答
0
投票

解决方案(但请参阅更新的解决方案)

version: "3"
services:

  backend:
    image: plone/plone-backend:6.0
    restart: always
    environment:
      ZEO_ADDRESS: zeo:8100
      SECURITY_POLICY_IMPLEMENTATION: "C"
      VERBOSE_SECURITY: "off"
      DEFAULT_ZPUBLISHER_ENCODING: "utf-8"
      DEBUG_MODE: "off"
      ZODB_CACHE_SIZE: "50000"
    tty: true
    stdin_open: true
    command: cat
    ports:
    - "8080:8080"
    depends_on:
      - zeo

  zeo:
    image: plone/plone-zeo:latest
    restart: always
    volumes:
      - data:/data
    ports:
    - "8100:8100"

volumes:
  data: {}

进入容器:

$ docker-compose exec backend bash

然后运行:

$ gosu plone /app/bin/runwsgi -v etc/zope.ini config_file=zope.conf

这将以 fg 模式启动实例。 (http://0.0.0.0:8080/)

我在这里找到了这个:https://github.com/plone/plone-backend/issues/64#issuecomment-1211912408

更新(更好的解决方案):

您可以将整个代码复制到 docker-compose.yml 中,您将获得注释形式的说明。

# CREATE PROJECT
# $ mkdir plone6
# $ cd plone6
# $ vim docker-compose.yml
#   Copy example from
#   https://6.docs.plone.org/install/containers/images/backend.html#example
#     Update: - data:/data
#       with: - ./data:/data
#
# START PLONE
# Stop all docker containers:
# $ docker stop $(docker ps -aq)
# $ docker-compose build
# $ sudo chown -R 500 data/
# $ docker-compose up
#
# ENTER THE BACKEND CONTAINER 
# $ docker-compose exec backend bash
#
# INSTALL VIM INTO CONTAINER
# $ apt update
# $ apt install vim
#
# FIND THE PACKAGES, EDIT (example plone.restapi)
# $ ./bin/python
# >>> import plone.restapi
# >>> plone.restapi.__file__
# '/app/lib/python3.11/site-packages/plone/restapi/__init__.py'
# >>> exit()
# $ vim /app/lib/python3.11/site-packages/plone/restapi/__init__.py
# To add a breakpoint write: import pdb; pdb.set_trace()
#
# START INSTANCE IN FG MODE
# In docker-compose.yml add for backend:
    # tty: true
    # stdin_open: true
    # command: cat
# docker-compose up
# docker-compose exec backend bash
# ./docker-entrypoint.sh
# set
# ./docker-entrypoint.sh start
version: "3"
services:

  backend:
    image: plone/plone-backend:6.0
    restart: always
    environment:
      ZEO_ADDRESS: zeo:8100
    tty: true
    stdin_open: true
    command: cat
    ports:
    - "8080:8080"
    depends_on:
      - zeo

  zeo:
    image: plone/plone-zeo:latest
    restart: always
    volumes:
      - ./data:/data
    ports:
    - "8100:8100"

volumes:
  data: {}
© www.soinside.com 2019 - 2024. All rights reserved.