@@ -118,3 +118,43 @@ RUN <<EOT
118
118
119
119
After making these changes, build the project container as usual.
120
120
It will no longer output the access log, but will continue to output the event log.
121
+
122
+
123
+ ## Pack the ZODB
124
+
125
+ A common maintenance task of a Plone instance is to [ pack the ZODB] ( https://zodb.org/en/stable/reference/zodb.html#ZODB.DB.pack ) .
126
+ Packing removes old revisions of objects.
127
+ It is similar to [ routine vacuuming in PostgreSQL] ( https://www.postgresql.org/docs/8.3/routine-vacuuming.html ) .
128
+
129
+ The official {doc}` /install/containers/images/backend ` container and project containers based on them have a ` pack ` command to pack the ZODB.
130
+ The command will work in standalone mode, ZEO mode, and RelStorage mode but only with PostgreSQL.
131
+
132
+ Invoke the command in a running container by passing in the appropriate command for the mode.
133
+
134
+ In standalone mode, ZODB is in a mounted volume, so the command would be similar to the following.
135
+
136
+ ``` shell
137
+ docker run -v /path/to/your/volume:/data plone/plone-backend pack
138
+ ```
139
+
140
+ In ZEO mode, run the command next to your ZEO instance.
141
+
142
+ ``` shell
143
+ docker run -e ZEO_ADDRESS=zeo:8100 --link zeo plone/plone-backend pack
144
+ ```
145
+
146
+ In RelStorage mode, pass the connection DSN.
147
+
148
+ ``` shell
149
+ docker run -e RELSTORAGE_DSN=" dbname='plone' user='plone' host='db' password='password' port='5432'" pack
150
+ ```
151
+
152
+ In running containers that use Docker Compose, the command is less complicated.
153
+
154
+ ``` shell
155
+ docker compose run backend pack
156
+ ```
157
+
158
+ The above command assumes that the service that runs the Plone instance is named ` backend ` .
159
+ Otherwise replace ` backend ` with your container's name.
160
+
0 commit comments