基于示例此处我添加了
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
等。我觉得它应该很简单,但只是无法弄清楚。
但就我而言,我不想要这种方式的调试模式。我的目标是使用 vim 编辑 Egg 中的一些文件,添加一些 pdb,然后我想在前台模式下启动实例,以研究某些功能是如何工作的。我在 Plone 4 中经常这样做。我如何在 Plone 6 中执行此操作?
解决方案(但请参阅更新的解决方案)
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: {}