Compare commits
23 Commits
master
...
dockerisat
Author | SHA1 | Date |
---|---|---|
Nicolas Demonté | a00078b81d | |
Nicolas Demonté | e31bc8ab0e | |
Nicolas Demonté | c0a6a77bd4 | |
Nicolas Demonté | 09c2814f65 | |
Nicolas Demonté | af657d7807 | |
Nicolas Demonte | 006f02d53e | |
Nicolas Demonte | 2b984f3ded | |
Nicolas Demonte | 3d3509ec25 | |
Martin Peeters | b836c9a425 | |
Martin Peeters | 693edad1ae | |
Martin Peeters | 26e26e978c | |
Nicolas Demonte | a89c424179 | |
Nicolas Demonte | 82926f9ccf | |
Nicolas Demonte | 3eeb0f253a | |
Nicolas Demonte | 521ac5a455 | |
Nicolas Demonte | 57a24af2f1 | |
Nicolas Demonte | 9d78df3156 | |
Nicolas Demonte | cbf6ee5296 | |
Nicolas Demonte | 4a2e537cdd | |
Nicolas Demonte | 7fd9e8c2dd | |
Nicolas Demonte | 3f8d6b0ec6 | |
Nicolas Demonte | b1bd0694db | |
Nicolas Demonte | 8f8237e51a |
|
@ -0,0 +1,229 @@
|
|||
### JetBrains template
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
.idea/
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
### VirtualEnv template
|
||||
# Virtualenv
|
||||
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
|
||||
.Python
|
||||
[Bb]in
|
||||
[Ii]nclude
|
||||
[Ll]ib
|
||||
[Ll]ib64
|
||||
[Ll]ocal
|
||||
[Ss]cripts
|
||||
pyvenv.cfg
|
||||
.venv
|
||||
pip-selfcheck.json
|
||||
|
||||
### Python template
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
FROM ubuntu:18.04
|
||||
|
||||
RUN apt-get -qy update && apt-get -o APT::Install-Recommends=false -qy install bash-completion curl htop less locales make ncurses-term software-properties-common telnet tzdata vim
|
||||
RUN ln -sf /usr/share/zoneinfo/Europe/Brussels /etc/localtime
|
||||
RUN echo "Europe/Brussels" > /etc/timezone; dpkg-reconfigure -f noninteractive tzdata
|
||||
|
||||
ENV PIP=9.0.3 \
|
||||
ZC_BUILDOUT=2.11.5 \
|
||||
SETUPTOOLS=38.7.0 \
|
||||
WHEEL=0.33.1 \
|
||||
PLONE_MAJOR=4 \
|
||||
PLONE_MINOR=4.3 \
|
||||
PLONE_VERSION=4.3.2
|
||||
|
||||
LABEL plone=$PLONE_VERSION \
|
||||
os="ubuntu" \
|
||||
os.version="18.04" \
|
||||
name="Buildout GED Parlement de la Fédération Wallonie-Bruxelles" \
|
||||
description="Plone image for PFWB GED" \
|
||||
maintainer="Affinitic"
|
||||
|
||||
RUN groupadd -g 209 plone \
|
||||
&& useradd --system -m -d /plone -u 913 -g 209 plone \
|
||||
&& mkdir -p /plone/ /data/filestorage /data/blobstorage /data/log /buildout-cache/download /buildout-cache/eggs
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt full-upgrade -y \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
cabextract \
|
||||
openjdk-8-jre \
|
||||
dpkg-dev \
|
||||
file \
|
||||
gcc \
|
||||
ghostscript \
|
||||
git \
|
||||
gosu \
|
||||
graphicsmagick \
|
||||
libc6-dev \
|
||||
libjpeg-dev \
|
||||
libldap-2.4-2 \
|
||||
libldap2-dev \
|
||||
libmagic1 \
|
||||
libmemcached-dev \
|
||||
libmemcached11 \
|
||||
libpq-dev \
|
||||
libreadline-dev \
|
||||
libreoffice \
|
||||
libreoffice-java-common \
|
||||
libreoffice-script-provider-python \
|
||||
libsasl2-dev \
|
||||
libtiff5 \
|
||||
libtiff5-dev \
|
||||
libxml2 \
|
||||
libxml2-dev \
|
||||
libxslt1.1 \
|
||||
libxslt1-dev \
|
||||
links \
|
||||
lynx \
|
||||
multitail \
|
||||
netcat \
|
||||
openssh-client \
|
||||
poppler-utils \
|
||||
python \
|
||||
python-dev \
|
||||
python-pip \
|
||||
rsync \
|
||||
ruby \
|
||||
tidy \
|
||||
unrtf \
|
||||
wv \
|
||||
&& curl -O http://archive.ubuntu.com/ubuntu/pool/universe/x/xlhtml/xlhtml_0.5.1-6ubuntu1_amd64.deb \
|
||||
&& curl -O http://archive.ubuntu.com/ubuntu/pool/universe/x/xlhtml/ppthtml_0.5.1-6ubuntu1_amd64.deb \
|
||||
&& dpkg -i xlhtml_0.5.1-6ubuntu1_amd64.deb ppthtml_0.5.1-6ubuntu1_amd64.deb \
|
||||
&& rm xlhtml_0.5.1-6ubuntu1_amd64.deb ppthtml_0.5.1-6ubuntu1_amd64.deb
|
||||
|
||||
|
||||
COPY *.cfg /plone/
|
||||
WORKDIR /plone
|
||||
|
||||
RUN pip install setuptools==$SETUPTOOLS zc.buildout==$ZC_BUILDOUT wheel==$WHEEL \
|
||||
&& buildout -c docker.cfg \
|
||||
&& find /data -not -user plone -exec chown plone:plone {} \+ \
|
||||
&& find /plone -not -user plone -exec chown plone:plone {} \+ \
|
||||
&& find /buildout-cache -not -user plone -exec chown plone:plone {} \+ \
|
||||
&& rm -rf /Plone* \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& rm -rf /buildout-cache/download/* \
|
||||
&& rm -f /plone/.installed.cfg
|
||||
|
||||
RUN gem install docsplit \
|
||||
&& ln -sf /usr/bin/virtualenv /usr/local/bin/virtualenv-2.7
|
||||
|
||||
USER plone
|
||||
WORKDIR /plone
|
||||
|
||||
VOLUME /data/blobstorage
|
||||
VOLUME /data/log
|
||||
|
||||
HEALTHCHECK --interval=1m --timeout=5s --start-period=1m \
|
||||
CMD nc -z -w5 127.0.0.1 8080 || exit 1
|
||||
|
||||
COPY docker-entrypoint.sh /
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
CMD ["start"]
|
|
@ -0,0 +1,123 @@
|
|||
---
|
||||
version: '3.4'
|
||||
services:
|
||||
zeo:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
volumes:
|
||||
- blobstorage:/data/blobstorage
|
||||
- filestorage:/data/filestorage
|
||||
- log:/data/log
|
||||
- type: tmpfs
|
||||
target: /var/tmp
|
||||
command: zeoserver
|
||||
healthcheck:
|
||||
disable: true
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged5
|
||||
environment:
|
||||
- HTTP_PORT=8080
|
||||
- HOSTNAME_HOST=local
|
||||
- PROJECT_ID=plone
|
||||
instance:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
volumes:
|
||||
- blobstorage:/data/blobstorage
|
||||
- documentviewer:/data/documentviewer
|
||||
- log:/data/log
|
||||
- type: tmpfs
|
||||
target: /plone/tmp
|
||||
deploy:
|
||||
replicas: 15
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged5
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.pfwb-ged-prod-login.rule=Host(`ged.pfwb.be`) && Method(`GET`) && Path (`/`)"
|
||||
- "traefik.http.routers.pfwb-ged-prod-login.priority=2"
|
||||
- "traefik.http.routers.pfwb-ged-prod-login.entrypoints=web"
|
||||
- "traefik.http.routers.pfwb-ged-prod-login.service=pfwb-ged-prod-login"
|
||||
- "traefik.http.services.pfwb-ged-prod-login.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.pfwb-ged-prod-login.middlewares=add-pfwb-ged-prod-login-vhost"
|
||||
- "traefik.http.middlewares.add-pfwb-ged-prod-login-vhost.addprefix.prefix=/VirtualHostBase/https/ged.pfwb.be:443/pfwbged/VirtualHostRoot/dashboard"
|
||||
- "traefik.http.routers.pfwb-ged-prod.rule=Host(`ged.pfwb.be`)"
|
||||
- "traefik.http.routers.pfwb-ged-prod.priority=1"
|
||||
- "traefik.http.routers.pfwb-ged-prod.entrypoints=web"
|
||||
- "traefik.http.routers.pfwb-ged-prod.service=pfwb-ged-prod"
|
||||
- "traefik.http.services.pfwb-ged-prod.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.pfwb-ged-prod.middlewares=add-pfwb-ged-prod-vhost"
|
||||
- "traefik.http.middlewares.add-pfwb-ged-prod-vhost.addprefix.prefix=/VirtualHostBase/https/ged.pfwb.be:443/pfwbged/VirtualHostRoot"
|
||||
ports:
|
||||
- 8080
|
||||
networks:
|
||||
- default
|
||||
- traefik
|
||||
environment:
|
||||
- HTTP_PORT=8080
|
||||
- ZEO_ADDRESS=zeo:8100
|
||||
- HOSTNAME_HOST=local
|
||||
- PROJECT_ID=plone
|
||||
- ROOT_URL=https://ged.pfwb.be
|
||||
worker:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
volumes:
|
||||
- blobstorage:/data/blobstorage
|
||||
- documentviewer:/data/documentviewer
|
||||
- log:/data/log
|
||||
- type: tmpfs
|
||||
target: /plone/tmp
|
||||
command: worker
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged5
|
||||
networks:
|
||||
- default
|
||||
environment:
|
||||
- HTTP_PORT=8080
|
||||
- ZEO_ADDRESS=zeo:8100
|
||||
- HOSTNAME_HOST=local
|
||||
- PROJECT_ID=plone
|
||||
- ROOT_URL=https://ged.pfwb.be
|
||||
redis:
|
||||
image: redis
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged5
|
||||
networks:
|
||||
- default
|
||||
solr:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged5
|
||||
volumes:
|
||||
- solr:/data/solr
|
||||
- blobstorage:/data/blobstorage
|
||||
- documentviewer:/data/documentviewer
|
||||
- log:/data/log
|
||||
command: solr-instance
|
||||
networks:
|
||||
- default
|
||||
healthcheck:
|
||||
disable: true
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external:
|
||||
name: traefik
|
||||
|
||||
volumes:
|
||||
blobstorage:
|
||||
filestorage:
|
||||
documentviewer:
|
||||
solr:
|
||||
log:
|
|
@ -0,0 +1,123 @@
|
|||
---
|
||||
version: '3.4'
|
||||
services:
|
||||
zeo:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
volumes:
|
||||
- blobstorage:/data/blobstorage
|
||||
- filestorage:/data/filestorage
|
||||
- log:/data/log
|
||||
- type: tmpfs
|
||||
target: /var/tmp
|
||||
command: zeoserver
|
||||
healthcheck:
|
||||
disable: true
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged6
|
||||
environment:
|
||||
- HTTP_PORT=8080
|
||||
- HOSTNAME_HOST=local
|
||||
- PROJECT_ID=plone
|
||||
instance:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
volumes:
|
||||
- blobstorage:/data/blobstorage
|
||||
- documentviewer:/data/documentviewer
|
||||
- log:/data/log
|
||||
- type: tmpfs
|
||||
target: /plone/tmp
|
||||
deploy:
|
||||
replicas: 8
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged6
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.pfwb-ged-staging-login.rule=Host(`ged-staging.pfwb.be`) && Method(`GET`) && Path (`/`)"
|
||||
- "traefik.http.routers.pfwb-ged-staging-login.priority=2"
|
||||
- "traefik.http.routers.pfwb-ged-staging-login.entrypoints=web"
|
||||
- "traefik.http.routers.pfwb-ged-staging-login.service=pfwb-ged-staging-login"
|
||||
- "traefik.http.services.pfwb-ged-staging-login.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.pfwb-ged-staging-login.middlewares=add-pfwb-ged-staging-login-vhost"
|
||||
- "traefik.http.middlewares.add-pfwb-ged-staging-login-vhost.addprefix.prefix=/VirtualHostBase/https/ged-staging.pfwb.be:443/pfwbged/VirtualHostRoot/dashboard"
|
||||
- "traefik.http.routers.pfwb-ged-staging.rule=Host(`ged-staging.pfwb.be`)"
|
||||
- "traefik.http.routers.pfwb-ged-staging.priority=1"
|
||||
- "traefik.http.routers.pfwb-ged-staging.entrypoints=web"
|
||||
- "traefik.http.routers.pfwb-ged-staging.service=pfwb-ged-staging"
|
||||
- "traefik.http.services.pfwb-ged-staging.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.pfwb-ged-staging.middlewares=add-pfwb-ged-staging-vhost"
|
||||
- "traefik.http.middlewares.add-pfwb-ged-staging-vhost.addprefix.prefix=/VirtualHostBase/https/ged-staging.pfwb.be:443/pfwbged/VirtualHostRoot"
|
||||
ports:
|
||||
- 8080
|
||||
networks:
|
||||
- default
|
||||
- traefik
|
||||
environment:
|
||||
- HTTP_PORT=8080
|
||||
- ZEO_ADDRESS=zeo:8100
|
||||
- HOSTNAME_HOST=local
|
||||
- PROJECT_ID=plone
|
||||
- ROOT_URL=https://ged-staging.pfwb.be
|
||||
worker:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
volumes:
|
||||
- blobstorage:/data/blobstorage
|
||||
- log:/data/log
|
||||
- documentviewer:/data/documentviewer
|
||||
- type: tmpfs
|
||||
target: /plone/tmp
|
||||
command: worker
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged6
|
||||
networks:
|
||||
- default
|
||||
environment:
|
||||
- HTTP_PORT=8080
|
||||
- ZEO_ADDRESS=zeo:8100
|
||||
- HOSTNAME_HOST=local
|
||||
- PROJECT_ID=plone
|
||||
- ROOT_URL=https://ged-staging.pfwb.be
|
||||
redis:
|
||||
image: redis
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged6
|
||||
networks:
|
||||
- default
|
||||
solr:
|
||||
image: ged.pfwb.be/pfwb-ged:${BUILD_ID}
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
- node.hostname == pfwb-ubuged6
|
||||
volumes:
|
||||
- solr:/data/solr
|
||||
- blobstorage:/data/blobstorage
|
||||
- documentviewer:/data/documentviewer
|
||||
- log:/data/log
|
||||
command: solr-instance
|
||||
networks:
|
||||
- default
|
||||
healthcheck:
|
||||
disable: true
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external:
|
||||
name: traefik
|
||||
|
||||
volumes:
|
||||
blobstorage:
|
||||
filestorage:
|
||||
solr:
|
||||
log:
|
||||
documentviewer:
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# ZConfig 2.9.1 is too old to do environment variable substitution on its own.
|
||||
sed -i "s/\$(HOSTNAME)/$HOSTNAME/g" /plone/parts/instance/etc/zope.conf
|
||||
sed -i "s/\$(HOSTNAME)/$HOSTNAME/g" /plone/parts/worker/etc/zope.conf
|
||||
|
||||
COMMANDS="adduser debug fg foreground help kill logreopen logtail reopen_transcript run show status stop wait"
|
||||
START="console start restart"
|
||||
|
||||
# zeo
|
||||
if [[ "$1" == "zeo"* ]]; then
|
||||
exec bin/$1 fg
|
||||
fi
|
||||
|
||||
# worker
|
||||
if [[ "$1" == "worker"* ]]; then
|
||||
exec bin/$1 fg
|
||||
fi
|
||||
|
||||
# solr-instance
|
||||
if [[ "$1" == "solr-instance"* ]]; then
|
||||
exec bin/$1 fg
|
||||
fi
|
||||
|
||||
# Plone instance start
|
||||
if [[ $START == *"$1"* ]]; then
|
||||
exec bin/instance console
|
||||
fi
|
||||
|
||||
# Plone instance helpers
|
||||
if [[ $COMMANDS == *"$1"* ]]; then
|
||||
exec bin/instance "$@"
|
||||
fi
|
||||
|
||||
# Custom
|
||||
exec "$@"
|
|
@ -0,0 +1,200 @@
|
|||
[buildout]
|
||||
extends =
|
||||
http://dist.plone.org/release/4.3.2/versions.cfg
|
||||
sources.cfg
|
||||
checkouts.cfg
|
||||
versions.cfg
|
||||
|
||||
parts =
|
||||
solr
|
||||
zeoserver
|
||||
instance
|
||||
worker
|
||||
|
||||
extensions =
|
||||
mr.developer
|
||||
versions = versions
|
||||
allow-picked-versions = false
|
||||
allow-hosts =
|
||||
pypi.org
|
||||
pypi.python.org
|
||||
effbot.org
|
||||
robotframework.googlecode.com
|
||||
robotframework-ride.googlecode.com
|
||||
code.google.com
|
||||
files.pythonhosted.org
|
||||
index = https://pypi.org/simple
|
||||
download-cache = /buildout-cache/download
|
||||
eggs-directory = /buildout-cache/eggs
|
||||
|
||||
eggs =
|
||||
Pillow
|
||||
collective.wfcomment
|
||||
collective.contact.facetednav
|
||||
|
||||
show-picked-versions = true
|
||||
|
||||
[zeoserver]
|
||||
recipe = plone.recipe.zeoserver
|
||||
zeo-address = 8100
|
||||
file-storage = /data/filestorage/Data.fs
|
||||
blob-storage = /data/blobstorage
|
||||
pack-days = 28
|
||||
pack-keep-old = false
|
||||
|
||||
[instance]
|
||||
recipe = plone.recipe.zope2instance
|
||||
user = admin:admin
|
||||
blob-storage = /data/blobstorage
|
||||
shared-blob = on
|
||||
zeo-client = true
|
||||
zeo-address = zeo:8100
|
||||
effective-user = plone
|
||||
http-address = 8080
|
||||
debug-mode = off
|
||||
verbose-security = off
|
||||
eggs =
|
||||
${buildout:eggs}
|
||||
pfwbged.policy
|
||||
collective.contact.core
|
||||
collective.contact.widget
|
||||
collective.dms.batchimport
|
||||
collective.dms.thesaurus
|
||||
collective.solr
|
||||
pfwbged.basecontent
|
||||
pfwbged.mockups
|
||||
pfwbged.collection
|
||||
pfwbged.folder
|
||||
pfwbged.theme
|
||||
eea.facetednavigation
|
||||
plone.app.async
|
||||
plone.app.ldap
|
||||
zcml =
|
||||
pfwbged.policy
|
||||
zcml-additional =
|
||||
<include package="plone.app.async" file="single_db_instance.zcml" />
|
||||
zope-conf-additional =
|
||||
%import collective.taskqueue
|
||||
<taskqueue>
|
||||
type redis
|
||||
host redis
|
||||
port 6379
|
||||
</taskqueue>
|
||||
|
||||
zeo-client-cache-size = 256MB
|
||||
zodb-cache-size = 60000
|
||||
|
||||
environment-vars =
|
||||
PYTHON_EGG_CACHE ${buildout:directory}/tmp
|
||||
TMPDIR ${buildout:directory}/tmp
|
||||
zope_i18n_compile_mo_files true
|
||||
event-log-custom =
|
||||
<logfile>
|
||||
level info
|
||||
path /data/log/instance-$(HOSTNAME).log
|
||||
max-size 1MB
|
||||
old-files 720
|
||||
</logfile>
|
||||
<logfile>
|
||||
level error
|
||||
path /data/log/error.log
|
||||
max-size 1MB
|
||||
old-files 720
|
||||
</logfile>
|
||||
access-log-custom =
|
||||
<logfile>
|
||||
path /data/log/z2-$(HOSTNAME).log
|
||||
max-size 1MB
|
||||
old-files 720
|
||||
</logfile>
|
||||
|
||||
[worker]
|
||||
<= instance
|
||||
environment-vars =
|
||||
${instance:environment-vars}
|
||||
ZC_ASYNC_UUID ${buildout:directory}/var/worker-uuid.txt
|
||||
zcml-additional =
|
||||
<include package="plone.app.async" file="single_db_worker.zcml" />
|
||||
zope-conf-additional =
|
||||
%import collective.taskqueue
|
||||
<taskqueue>
|
||||
type redis
|
||||
host redis
|
||||
port 6379
|
||||
</taskqueue>
|
||||
<taskqueue-server>
|
||||
name ${:_buildout_section_name_}
|
||||
</taskqueue-server>
|
||||
|
||||
[solr]
|
||||
recipe = collective.recipe.solrinstance
|
||||
host = 0.0.0.0
|
||||
port = 8983
|
||||
management-port = 8094
|
||||
min-ram = 256M
|
||||
max-ram = 1024M
|
||||
basepath = /solr
|
||||
logdir = /data/log
|
||||
vardir = /data/solr
|
||||
pidpath = /data/solr
|
||||
solr-version = 3
|
||||
default-search-field = default
|
||||
java-opts =
|
||||
-Dcom.sun.management.jmxremote
|
||||
-Djava.rmi.server.hostname=${solr:host}
|
||||
-Dcom.sun.management.jmxremote.port=${:management-port}
|
||||
-Dcom.sun.management.jmxremote.ssl=false
|
||||
-Dcom.sun.management.jmxremote.authenticate=false
|
||||
-server
|
||||
-Xms${solr:min-ram}
|
||||
-Xmx${solr:max-ram}
|
||||
|
||||
default-operator = AND
|
||||
maxWarmingSearchers = 1
|
||||
unique-key = UID
|
||||
|
||||
index =
|
||||
name:allowedRolesAndUsers type:string stored:false multivalued:true
|
||||
name:created type:date stored:true
|
||||
name:Creator type:string stored:true
|
||||
name:Date type:date stored:true
|
||||
name:default type:text indexed:true stored:false multivalued:true
|
||||
name:Description type:text copyfield:default stored:true
|
||||
name:effective type:date stored:true
|
||||
name:exclude_from_nav type:boolean indexed:false stored:true
|
||||
name:expires type:date stored:true
|
||||
name:getIcon type:string indexed:false stored:true
|
||||
name:getId type:string indexed:false stored:true
|
||||
name:getRemoteUrl type:string indexed:false stored:true
|
||||
name:is_folderish type:boolean stored:true
|
||||
name:Language type:string stored:true
|
||||
name:modified type:date stored:true
|
||||
name:object_provides type:string stored:false multivalued:true
|
||||
name:path_depth type:integer indexed:true stored:false
|
||||
name:path_parents type:string indexed:true stored:false multivalued:true
|
||||
name:path_string type:string indexed:false stored:true
|
||||
name:portal_type type:string stored:true
|
||||
name:review_state type:string stored:true
|
||||
name:SearchableText type:text copyfield:default stored:false
|
||||
name:searchwords type:string stored:false multivalued:true
|
||||
name:showinsearch type:boolean stored:false
|
||||
name:Subject type:string copyfield:default stored:true multivalued:true
|
||||
name:Title type:text copyfield:default stored:true
|
||||
name:Type type:string stored:true
|
||||
name:UID type:string stored:true required:true
|
||||
name:get_full_title type:string stored:true
|
||||
name:has_final_unsigned_version type:boolean stored:true
|
||||
name:can_last_version_validate type:boolean stored:true
|
||||
name:has_last_version_accept type:boolean stored:true
|
||||
name:has_last_version_refuse type:boolean stored:true
|
||||
name:sender_as_text type:text stored:true
|
||||
name:recipients_as_text type:text stored:true
|
||||
name:object_folders type:string stored:false multivalued:true
|
||||
name:object_direct_folders type:string stored:false multivalued:true
|
||||
name:thesaurus_keywords type:string stored:false multivalued:true
|
||||
name:reception_date type:date stored:true
|
||||
name:mail_date type:date stored:true
|
||||
name:meeting_date type:date stored:true
|
||||
name:sortable_title type:string stored:true
|
||||
name:internal_reference_number type:string stored:true
|
||||
|
16
sources.cfg
16
sources.cfg
|
@ -3,14 +3,16 @@ extends =
|
|||
https://raw.github.com/plone/buildout.coredev/4.3/sources.cfg
|
||||
|
||||
[remotes]
|
||||
tdesvenain = git://github.com/tdesvenain
|
||||
tdesvenain = https://github.com/tdesvenain
|
||||
tdesvenain_push = git@github.com:tdesvenain
|
||||
vincentfretin = git://github.com/vincentfretin
|
||||
vincentfretin = https://github.com/vincentfretin
|
||||
vincentfretin_push = git@github.com:vincentfretin
|
||||
cedricmessiant = git://github.com/cedricmessiant
|
||||
cedricmessiant = https://github.com/cedricmessiant
|
||||
cedricmessiant_push = git@github.com:cedricmessiant
|
||||
entrouvert = git://repos.entrouvert.org
|
||||
entrouvert_push = git+ssh://git@repos.entrouvert.org
|
||||
entrouvert = https://git.entrouvert.org
|
||||
entrouvert_push = git+ssh://git@git.entrouvert.org
|
||||
collective = https://github.com/collective
|
||||
collective_push = git@github.com:collective
|
||||
|
||||
[sources]
|
||||
collective.contact.core = git ${remotes:entrouvert}/collective.contact.core.git pushurl=${remotes:entrouvert_push}/collective.contact.core.git
|
||||
|
@ -23,13 +25,13 @@ collective.dms.batchimport = git ${remotes:entrouvert}/collective.dms.batchimpor
|
|||
collective.dms.mailcontent = git ${remotes:entrouvert}/collective.dms.mailcontent.git pushurl=${remotes:entrouvert_push}/collective.dms.mailcontent.git
|
||||
collective.dms.thesaurus = git ${remotes:entrouvert}/collective.dms.thesaurus.git pushurl=${remotes:entrouvert_push}/collective.dms.thesaurus.git
|
||||
collective.task = git ${remotes:entrouvert}/collective.task.git pushurl=${remotes:entrouvert_push}/collective.task.git
|
||||
collective.z3cform.chosen = git git://github.com/kiorky/collective.z3cform.chosen.git pushurl=git+ssh://git@github.com/kiorky/collective.z3cform.chosen.git
|
||||
collective.z3cform.chosen = git https://github.com/kiorky/collective.z3cform.chosen.git pushurl=git+ssh://git@github.com/kiorky/collective.z3cform.chosen.git
|
||||
collective.z3cform.rolefield = git ${remotes:entrouvert}/collective.z3cform.rolefield.git pushurl=${remotes:entrouvert_push}/collective.z3cform.rolefield.git
|
||||
eea.facetednavigation = git ${remotes:collective}/eea.facetednavigation.git pushurl=${remotes:collective_push}/eea.facetednavigation.git
|
||||
ecreall.helpers.testing = git ${remotes:tdesvenain}/ecreall.helpers.testing.git pushurl=${remotes:tdesvenain_push}/ecreall.helpers.testing.git
|
||||
ecreall.helpers.upgrade = git ${remotes:tdesvenain}/ecreall.helpers.upgrade.git pushurl=${remotes:tdesvenain_push}/ecreall.helpers.upgrade.git
|
||||
pfwbged.basecontent = git ${remotes:entrouvert}/pfwbged.basecontent.git pushurl=${remotes:entrouvert_push}/pfwbged.basecontent.git
|
||||
pfwbged.collection = git ${remotes:entrouvert}/pfwbged.collection.git pushurl=${remotes:entrouvert_push}/pfwbged.collection.git branch=ged1.6
|
||||
pfwbged.collection = git ${remotes:entrouvert}/pfwbged.collection.git pushurl=${remotes:entrouvert_push}/pfwbged.collection.git branch=32781
|
||||
pfwbged.folder = git ${remotes:entrouvert}/pfwbged.folder.git pushurl=${remotes:entrouvert_push}/pfwbged.folder.git
|
||||
pfwbged.contact = git ${remotes:entrouvert}/pfwbged.contact.git pushurl=${remotes:entrouvert_push}/pfwbged.contact.git
|
||||
pfwbged.policy = git ${remotes:entrouvert}/pfwbged.policy.git pushurl=${remotes:entrouvert_push}/pfwbged.policy.git branch=ged1.6
|
||||
|
|
|
@ -144,3 +144,6 @@ PyYAML = 5.3
|
|||
argh = 0.26.2
|
||||
pathtools = 0.1.2
|
||||
watchdog = 0.9.0
|
||||
|
||||
collective.recipe.solrinstance = 6.0.0b3
|
||||
Genshi = 0.7.7
|
||||
|
|
Reference in New Issue