├── .github ├── scripts │ ├── check.yml │ ├── gen.py │ └── templates │ │ ├── README.md.j2 │ │ ├── apache_container.j2 │ │ ├── docker-entrypoint.sh │ │ └── fpm_container.j2 └── workflows │ └── main.yml ├── README.md ├── apache ├── 2.20.1 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.20 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.21.1 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.21.2 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.21.3 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.22 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.23.1 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.25.2 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.25.3 │ ├── Dockerfile │ └── docker-entrypoint.sh └── 2.25 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── docker-compose.yml ├── fpm ├── 2.20.1 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.20 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.21.1 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.21.2 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.21.3 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.22 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.23.1 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.25.2 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.25.3 │ ├── Dockerfile │ └── docker-entrypoint.sh ├── 2.25 │ ├── Dockerfile │ └── docker-entrypoint.sh └── fpm.conf └── varnish └── backends.vcl /.github/scripts/check.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: check dotclear version 3 | hosts: localhost 4 | gather_facts: no 5 | tasks: 6 | - set_fact: 7 | # versions_xml: "{{ lookup('file', 'versions.xml') }}" 8 | versions_xml: "{{ lookup('url', 'https://download.dotclear.org/versions.xml', split_lines=False) }}" 9 | github_path: "{{ lookup('env', 'GITHUB_WORKSPACE') }}" 10 | repo_path: "{{ github_path | default(lookup('env', 'PWD')) }}" 11 | 12 | - xml: 13 | xmlstring: "{{ versions_xml }}" 14 | xpath: "/versions/subject/release[@name='stable']" 15 | content: "attribute" 16 | register: versions 17 | 18 | - debug: 19 | msg: 20 | - "{{ versions.matches.0.release.name }}" 21 | - "{{ versions.matches.0.release.version }}" 22 | - "{{ versions.matches.0.release.checksum }}" 23 | 24 | - name: set github env variables 25 | when: lookup('env', 'GITHUB_ENV') 26 | lineinfile: 27 | path: "{{ lookup('env', 'GITHUB_ENV') }}" 28 | line: "{{ item.var }}={{ item.value }}" 29 | create: yes 30 | loop: 31 | - var: release_version 32 | value: "{{ versions.matches.0.release.version }}" 33 | - var: release_info 34 | value: "{{ versions.matches.0.release.info }}" 35 | 36 | - name: check if version exist 37 | stat: 38 | path: "{{ (repo_path, 'apache', versions.matches.0.release.version, 'Dockerfile') | path_join }}" 39 | register: existing_dockerfile 40 | 41 | - block: 42 | - debug: 43 | msg: "New version : {{ versions.matches.0.release.version }}" 44 | 45 | - name: get all Dockerfile 46 | find: 47 | paths: 48 | - "{{ (repo_path, 'apache') | path_join }}" 49 | - "{{ (repo_path, 'fpm') | path_join }}" 50 | recurse: True 51 | patterns: Dockerfile 52 | register: all_dockerfiles 53 | 54 | - name: Move previous versions to the attic 55 | lineinfile: 56 | regexp: '^ENV DOTCLEAR_DOWNLOAD_URL' 57 | line: 'ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip' 58 | path: "{{ item.path }}" 59 | loop: "{{ all_dockerfiles.files }}" 60 | loop_control: 61 | label: "{{ item.path }}" 62 | 63 | - name: Create a directory if it does not exist 64 | file: 65 | path: "{{ (repo_path, 'apache', version) | path_join }}" 66 | state: directory 67 | mode: '0755' 68 | 69 | - name: Dockerfile 70 | template: 71 | src: apache_container.j2 72 | dest: "{{ (repo_path, 'apache', version, 'Dockerfile') | path_join }}" 73 | 74 | - name: entrypoint 75 | template: 76 | src: docker-entrypoint.sh 77 | dest: "{{ (repo_path, 'apache', version, 'docker-entrypoint.sh') | path_join }}" 78 | mode: '0755' 79 | 80 | - name: Create a directory if it does not exist 81 | file: 82 | path: "{{ (repo_path, 'fpm', version) | path_join }}" 83 | state: directory 84 | mode: '0755' 85 | 86 | - name: Dockerfile 87 | template: 88 | src: fpm_container.j2 89 | dest: "{{ (repo_path, 'fpm', version, 'Dockerfile') | path_join }}" 90 | 91 | - name: entrypoint 92 | template: 93 | src: docker-entrypoint.sh 94 | dest: "{{ (repo_path, 'fpm', version, 'docker-entrypoint.sh') | path_join }}" 95 | mode: '0755' 96 | 97 | - name: list all tags 98 | script: 99 | cmd: gen.py 100 | chdir: "{{ repo_path }}" 101 | register: gen_out 102 | 103 | - set_fact: 104 | tag_list: "{{ gen_out.stdout | from_json }}" 105 | 106 | - name: regen README.md 107 | template: 108 | src: README.md.j2 109 | dest: "{{ (repo_path, 'README.md') | path_join }}" 110 | mode: '0644' 111 | 112 | when: not existing_dockerfile.stat.exists 113 | vars: 114 | version: "{{ versions.matches.0.release.version }}" 115 | md5: "{{ versions.matches.0.release.checksum }}" 116 | -------------------------------------------------------------------------------- /.github/scripts/gen.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import glob 3 | import json 4 | import os 5 | from packaging.version import Version 6 | from argparse import ArgumentParser 7 | from pprint import pprint 8 | 9 | parser = ArgumentParser() 10 | parser.add_argument("--set-output", default=False, dest='set_output', action='store_true', help="Set Github actions output") 11 | parser.add_argument("--prime", default=False, dest='prime', action='store_true', help="use only base image, for caching") 12 | parser.add_argument("--no-prime", default=False, dest='noprime', action='store_true', help="ignore base image") 13 | opts = parser.parse_args() 14 | 15 | dockerfiles = glob.glob("*/*/Dockerfile") 16 | l = [] 17 | known_variant = [] 18 | for df in dockerfiles: 19 | variant,version,_ = df.split('/') 20 | l.append({ 21 | 'version': version, 22 | 'variant': variant, 23 | 'file': df, 24 | }) 25 | 26 | l.sort(key=lambda f: Version(f['version'])) 27 | latest = l[-1]['version'] 28 | #print("latest is %s" % (latest,)) 29 | if opts.set_output: 30 | strategy = { 31 | "fail-fast": False, 32 | "matrix": { 33 | "include": [], 34 | }} 35 | else: 36 | strategy = [] 37 | for im in l: 38 | tags = [] 39 | if im['variant'] == "apache": 40 | tags.append(im['version']) 41 | if im['version'] == latest: 42 | tags.append("latest") 43 | tags.append("apache") 44 | else: 45 | tags.append("%s-%s" % (im['version'], im['variant'])) 46 | if im['version'] == latest: 47 | tags.append(im['variant']) 48 | 49 | if opts.set_output: 50 | if im['variant'] not in known_variant: 51 | known_variant.append(im['variant']) 52 | if opts.noprime: 53 | continue 54 | elif opts.prime: 55 | continue 56 | strategy['matrix']['include'].append( 57 | { 58 | "name": "%s-%s" % (im['version'], im['variant']), 59 | "os": "ubuntu-latest", 60 | "cache": "%s-cache" % (im['variant'],), 61 | "tags": ",".join(map(lambda x: "darknao/dotclear:%s" % (x,), tags)), 62 | "context": "%s/%s" % (im['variant'], im['version']), 63 | "dockerfile": im['file'], 64 | }) 65 | else: 66 | strategy.append( 67 | { 68 | "name": "%s-%s" % (im['version'], im['variant']), 69 | "tags": tags, 70 | "dockerfile": im['file'], 71 | }) 72 | 73 | #pprint(strategy) 74 | if opts.set_output: 75 | with open(os.getenv("GITHUB_OUTPUT"), 'a') as f: 76 | f.write("strategy=%s" % (json.dumps(strategy),)) 77 | else: 78 | print(json.dumps(strategy)) 79 | -------------------------------------------------------------------------------- /.github/scripts/templates/README.md.j2: -------------------------------------------------------------------------------- 1 | # Supported tags and respective `Dockerfile` links # 2 | {% for image in tag_list|reverse %} 3 | - [{{ image.tags|map('regex_replace', '(.+)', '`\\1`')|join(', ') }} (*{{ image.dockerfile }}*)](https://github.com/darknao/docker-dotclear/blob/master/{{ image.dockerfile }}) 4 | {% endfor %} 5 | 6 | # What is Dotclear? # 7 | Dotclear is an open source blog publishing application distributed under the GNU GPLv2. 8 | 9 | It's proposed aim is to develop a software that fully respects web standards based on open source solutions, with multilingual interface and publishing capabilities. It is written in PHP. 10 | 11 | http://dotclear.org 12 | 13 | ![dotclear_logo](https://cloud.githubusercontent.com/assets/693402/9613090/a7454250-50e9-11e5-92a5-0ad55dc5a8af.png) 14 | 15 | # How to use this image # 16 | docker run --name blog --link db_container:db -p 80:80 -d darknao/dotclear 17 | 18 | You will need a database container using mysql or postgresql, with an already created database/user. 19 | 20 | Dotclear data are stored in a volume on **/var/www/html**. 21 | 22 | On the first run, you'll get a configuration wizard to set your database settings and create your config.php. 23 | 24 | # FPM variant # 25 | You can use [this configuration file](https://github.com/darknao/docker-dotclear/blob/master/fpm/fpm.conf) with nginx, for example. 26 | 27 | Start the fpm container: 28 | 29 | docker run --link mysqldb -d --name blog_fpm darknao/dotclear:fpm 30 | Start nginx with a link to the fpm container (notice the **fpm** alias, it'll be used in the **fpm.conf**): 31 | 32 | docker run -d -p 80:80 \ 33 | --link blog_fpm:fpm \ 34 | --name blog_nginx \ 35 | -v $(pwd)/fpm.conf:/etc/nginx/conf.d/default.conf:ro \ 36 | --volumes-from blog_fpm nginx 37 | 38 | # Dotclear upgrade # 39 | Upgrade *should* happen automagically if you run an up to date image on an existing volume: 40 | 41 | docker run --volumes-from old_blog --link database -p 80:80 -d darknao/dotclear:latest 42 | 43 | 44 | -------------------------------------------------------------------------------- /.github/scripts/templates/apache_container.j2: -------------------------------------------------------------------------------- 1 | FROM php:8-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION {{ version }} 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/latest/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 {{ md5 }} 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /.github/scripts/templates/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /.github/scripts/templates/fpm_container.j2: -------------------------------------------------------------------------------- 1 | FROM php:8-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION {{ version }} 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/latest/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 {{ md5 }} 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | schedule: 5 | - cron: '0 0 * * 1' 6 | workflow_dispatch: 7 | 8 | jobs: 9 | detect_release: 10 | if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} 11 | name: detect new release 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v3.3.0 15 | - name: Set up Python 3 16 | uses: actions/setup-python@v1 17 | with: 18 | python-version: "3.x" 19 | - name: pip install 20 | run: pip install ansible lxml 21 | - name: run playbook 22 | id: playbook 23 | run: ansible-playbook .github/scripts/check.yml 24 | - name: Create Pull Request 25 | id: cpr 26 | uses: peter-evans/create-pull-request@v3 27 | with: 28 | commit-message: Dotclear ${{ env.release_version }} 29 | committer: GitHub 30 | author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> 31 | signoff: false 32 | branch: v${{ env.release_version }} 33 | delete-branch: true 34 | title: 'Dotclear version v${{ env.release_version }}' 35 | body: | 36 | New version available! 37 | Release info: ${{ env.release_info }} 38 | labels: | 39 | automated pr 40 | assignees: darknao 41 | reviewers: darknao 42 | 43 | - name: Check outputs 44 | run: | 45 | echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" 46 | echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" 47 | 48 | gen: 49 | name: Generate build jobs 50 | runs-on: ubuntu-latest 51 | outputs: 52 | strategy_cache: ${{ steps.gencache.outputs.strategy }} 53 | strategy_all: ${{ steps.genall.outputs.strategy }} 54 | steps: 55 | - uses: actions/checkout@v3.3.0 56 | - id: gencache 57 | name: Get images list 58 | run: python .github/scripts/gen.py --set-output --prime 59 | - id: genall 60 | name: Get images list 61 | run: python .github/scripts/gen.py --set-output --no-prime 62 | 63 | build_cache: 64 | needs: gen 65 | strategy: ${{ fromJson(needs.gen.outputs.strategy_cache) }} 66 | name: ${{ matrix.name }} 67 | runs-on: ${{ matrix.os }} 68 | steps: 69 | - name: Checkout 70 | uses: actions/checkout@v3.3.0 71 | 72 | - name: Set up QEMU 73 | uses: docker/setup-qemu-action@v2 74 | 75 | - name: Set up Docker Buildx 76 | uses: docker/setup-buildx-action@v2 77 | 78 | - name: Login to DockerHub 79 | uses: docker/login-action@v2 80 | with: 81 | username: ${{ secrets.DOCKERHUB_USERNAME }} 82 | password: ${{ secrets.DOCKERHUB_TOKEN }} 83 | 84 | - name: Build and push 85 | uses: docker/build-push-action@v4 86 | with: 87 | context: ${{ matrix.context }} 88 | file: ${{ matrix.dockerfile }} 89 | platforms: linux/amd64,linux/arm/v7 90 | push: ${{ github.ref == 'refs/heads/master' }} 91 | tags: ${{ matrix.tags }} 92 | cache-to: type=registry,ref=darknao/dotclear:${{ matrix.cache }},mode=max 93 | cache-from: type=registry,ref=darknao/dotclear:${{ matrix.cache }} 94 | 95 | build_all: 96 | needs: [gen, build_cache] 97 | strategy: ${{ fromJson(needs.gen.outputs.strategy_all) }} 98 | name: ${{ matrix.name }} 99 | runs-on: ${{ matrix.os }} 100 | steps: 101 | - name: Checkout 102 | uses: actions/checkout@v3.3.0 103 | 104 | - name: Set up QEMU 105 | uses: docker/setup-qemu-action@v2 106 | 107 | - name: Set up Docker Buildx 108 | uses: docker/setup-buildx-action@v2 109 | 110 | - name: Login to DockerHub 111 | uses: docker/login-action@v2 112 | with: 113 | username: ${{ secrets.DOCKERHUB_USERNAME }} 114 | password: ${{ secrets.DOCKERHUB_TOKEN }} 115 | 116 | - name: Build and push 117 | uses: docker/build-push-action@v4 118 | with: 119 | context: ${{ matrix.context }} 120 | file: ${{ matrix.dockerfile }} 121 | platforms: linux/amd64,linux/arm/v7 122 | push: ${{ github.ref == 'refs/heads/master' }} 123 | tags: ${{ matrix.tags }} 124 | cache-from: type=registry,ref=darknao/dotclear:${{ matrix.cache }} 125 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Supported tags and respective `Dockerfile` links # 2 | - [`2.25.3-fpm`, `fpm` (*fpm/2.25.3/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.25.3/Dockerfile) 3 | - [`2.25.3`, `latest`, `apache` (*apache/2.25.3/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.25.3/Dockerfile) 4 | - [`2.25.2-fpm` (*fpm/2.25.2/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.25.2/Dockerfile) 5 | - [`2.25.2` (*apache/2.25.2/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.25.2/Dockerfile) 6 | - [`2.25-fpm` (*fpm/2.25/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.25/Dockerfile) 7 | - [`2.25` (*apache/2.25/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.25/Dockerfile) 8 | - [`2.23.1-fpm` (*fpm/2.23.1/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.23.1/Dockerfile) 9 | - [`2.23.1` (*apache/2.23.1/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.23.1/Dockerfile) 10 | - [`2.22-fpm` (*fpm/2.22/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.22/Dockerfile) 11 | - [`2.22` (*apache/2.22/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.22/Dockerfile) 12 | - [`2.21.3-fpm` (*fpm/2.21.3/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.21.3/Dockerfile) 13 | - [`2.21.3` (*apache/2.21.3/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.21.3/Dockerfile) 14 | - [`2.21.2-fpm` (*fpm/2.21.2/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.21.2/Dockerfile) 15 | - [`2.21.2` (*apache/2.21.2/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.21.2/Dockerfile) 16 | - [`2.21.1-fpm` (*fpm/2.21.1/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.21.1/Dockerfile) 17 | - [`2.21.1` (*apache/2.21.1/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.21.1/Dockerfile) 18 | - [`2.20.1-fpm` (*fpm/2.20.1/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.20.1/Dockerfile) 19 | - [`2.20.1` (*apache/2.20.1/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.20.1/Dockerfile) 20 | - [`2.20-fpm` (*fpm/2.20/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/fpm/2.20/Dockerfile) 21 | - [`2.20` (*apache/2.20/Dockerfile*)](https://github.com/darknao/docker-dotclear/blob/master/apache/2.20/Dockerfile) 22 | 23 | # What is Dotclear? # 24 | Dotclear is an open source blog publishing application distributed under the GNU GPLv2. 25 | 26 | It's proposed aim is to develop a software that fully respects web standards based on open source solutions, with multilingual interface and publishing capabilities. It is written in PHP. 27 | 28 | http://dotclear.org 29 | 30 | ![dotclear_logo](https://cloud.githubusercontent.com/assets/693402/9613090/a7454250-50e9-11e5-92a5-0ad55dc5a8af.png) 31 | 32 | # How to use this image # 33 | docker run --name blog --link db_container:db -p 80:80 -d darknao/dotclear 34 | 35 | You will need a database container using mysql or postgresql, with an already created database/user. 36 | 37 | Dotclear data are stored in a volume on **/var/www/html**. 38 | 39 | On the first run, you'll get a configuration wizard to set your database settings and create your config.php. 40 | 41 | # FPM variant # 42 | You can use [this configuration file](https://github.com/darknao/docker-dotclear/blob/master/fpm/fpm.conf) with nginx, for example. 43 | 44 | Start the fpm container: 45 | 46 | docker run --link mysqldb -d --name blog_fpm darknao/dotclear:fpm 47 | Start nginx with a link to the fpm container (notice the **fpm** alias, it'll be used in the **fpm.conf**): 48 | 49 | docker run -d -p 80:80 \ 50 | --link blog_fpm:fpm \ 51 | --name blog_nginx \ 52 | -v $(pwd)/fpm.conf:/etc/nginx/conf.d/default.conf:ro \ 53 | --volumes-from blog_fpm nginx 54 | 55 | # Dotclear upgrade # 56 | Upgrade *should* happen automagically if you run an up to date image on an existing volume: 57 | 58 | docker run --volumes-from old_blog --link database -p 80:80 -d darknao/dotclear:latest 59 | 60 | 61 | -------------------------------------------------------------------------------- /apache/2.20.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.20.1 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 c61c47cec7fd58f3e00ce5074b3405f6 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.20.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.20/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.20 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 7ae6c57fe7913d11e9eef11d840a0b1e 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.20/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.21.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.21.1 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 b91976c39cf54949ed27d92be588c3b4 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.21.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.21.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.21.2 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 42d34ac954e96f7a44ebd897a1baebf4 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.21.2/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.21.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.21.3 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 011e7c48361499e6177609ffec6e586f 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.21.3/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.22/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.22 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 445dfbab5e8a86abc33916acf1ebb97b 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.22/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.23.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.23.1 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 add0cf89d8545b1f09bc3c65ee9a7a8a 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.23.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.25.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.25.2 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 247d04629f2603879cb7f228a06c0396 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.25.2/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.25.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.25.3 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/latest/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 4251e05df5884c53aa8e3b378a453e4d 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.25.3/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /apache/2.25/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-apache 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN a2enmod rewrite 22 | 23 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 24 | 25 | VOLUME /var/www/html 26 | EXPOSE 80 27 | 28 | ENV DOTCLEAR_VERSION 2.25 29 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 30 | ENV DOTCLEAR_DOWNLOAD_MD5 419549fc487e7712c59c9a2a4eff258c 31 | 32 | RUN mkdir -p /usr/src/dotclear \ 33 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 34 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 35 | && unzip -d /usr/src dotclear.zip \ 36 | && rm dotclear.zip \ 37 | && chown -R www-data:www-data /usr/src/dotclear \ 38 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 39 | && rm -f /var/www/html/* 40 | 41 | 42 | ADD docker-entrypoint.sh /entrypoint.sh 43 | ENTRYPOINT ["/entrypoint.sh"] 44 | CMD ["apache2-foreground"] 45 | -------------------------------------------------------------------------------- /apache/2.25/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | nginx: 2 | image: nginx 3 | links: 4 | - dotclear:fpm 5 | volumes: 6 | - ./fpm/fpm.conf:/etc/nginx/conf.d/default.conf:Z 7 | volumes_from: 8 | - blog_data 9 | restart: always 10 | 11 | mysql: 12 | image: mysql 13 | volumes_from: 14 | - mysql_data 15 | restart: always 16 | 17 | dotclear: 18 | image: darknao/dotclear:fpm 19 | links: 20 | - mysql:mysqldb 21 | volumes_from: 22 | - blog_data 23 | restart: always 24 | 25 | varnish: 26 | image: eeacms/varnish 27 | links: 28 | - nginx 29 | volumes: 30 | - ./varnish:/etc/varnish/conf.d:Z 31 | ports: 32 | - "8106:80" 33 | restart: always 34 | -------------------------------------------------------------------------------- /fpm/2.20.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.20.1 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 c61c47cec7fd58f3e00ce5074b3405f6 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.20.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.20/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.20 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 7ae6c57fe7913d11e9eef11d840a0b1e 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.20/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.21.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.21.1 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 b91976c39cf54949ed27d92be588c3b4 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.21.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.21.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.21.2 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 42d34ac954e96f7a44ebd897a1baebf4 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.21.2/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.21.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.21.3 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 011e7c48361499e6177609ffec6e586f 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.21.3/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.22/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.22 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 445dfbab5e8a86abc33916acf1ebb97b 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.22/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.23.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.23.1 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 add0cf89d8545b1f09bc3c65ee9a7a8a 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.23.1/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.25.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.25.2 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 247d04629f2603879cb7f228a06c0396 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.25.2/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.25.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.25.3 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/latest/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 4251e05df5884c53aa8e3b378a453e4d 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.25.3/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/2.25/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8-fpm 2 | 3 | RUN set -x; \ 4 | apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | postgresql-server-dev-all \ 7 | libfreetype6-dev \ 8 | libjpeg62-turbo-dev \ 9 | libpng-dev \ 10 | libonig-dev \ 11 | rsync \ 12 | unzip \ 13 | && rm -r /var/lib/apt/lists/* 14 | 15 | RUN docker-php-ext-install mbstring pgsql mysqli \ 16 | && docker-php-ext-configure gd \ 17 | --with-freetype \ 18 | --with-jpeg \ 19 | && docker-php-ext-install gd 20 | 21 | RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" 22 | 23 | VOLUME /var/www/html 24 | EXPOSE 80 25 | 26 | ENV DOTCLEAR_VERSION 2.25 27 | ENV DOTCLEAR_DOWNLOAD_URL http://download.dotclear.org/attic/dotclear-${DOTCLEAR_VERSION}.zip 28 | ENV DOTCLEAR_DOWNLOAD_MD5 419549fc487e7712c59c9a2a4eff258c 29 | 30 | RUN mkdir -p /usr/src/dotclear \ 31 | && curl -fsSL -o dotclear.zip "$DOTCLEAR_DOWNLOAD_URL" \ 32 | && echo "$DOTCLEAR_DOWNLOAD_MD5 dotclear.zip" | md5sum -c - \ 33 | && unzip -d /usr/src dotclear.zip \ 34 | && rm dotclear.zip \ 35 | && chown -R www-data:www-data /usr/src/dotclear \ 36 | && chmod -R 755 /usr/src/dotclear/public /usr/src/dotclear/cache \ 37 | && rm -f /var/www/html/* 38 | 39 | ADD docker-entrypoint.sh /entrypoint.sh 40 | ENTRYPOINT ["/entrypoint.sh"] 41 | CMD ["php-fpm"] 42 | 43 | -------------------------------------------------------------------------------- /fpm/2.25/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if ! [ -e index.php -a -e inc/prepend.php ]; then 6 | # Initial Installation 7 | echo >&2 "Dotclear not found in $(pwd) - copying now..." 8 | if [ "$(ls -A)" ]; then 9 | echo >&2 "WARNING: $(pwd) is not empty - press Ctrl+C now if this is an error!" 10 | ( set -x; ls -A; sleep 10 ) 11 | fi 12 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 13 | # Install default htaccess for query_string rewriting 14 | if [ ! -e .htaccess ]; then 15 | cat > .htaccess <<-'EOF' 16 | 17 | RewriteEngine On 18 | RewriteCond %{REQUEST_FILENAME} !-f 19 | RewriteCond %{REQUEST_FILENAME} !-d 20 | RewriteRule (.*) index.php?$1 21 | 22 | EOF 23 | chown www-data:www-data .htaccess 24 | fi 25 | echo >&2 "Complete! Dotclear has been successfully copied to $(pwd)" 26 | else 27 | # Existing install, do we need an upgrade? 28 | DOTCLEAR_CURRENT_VERSION=$(sed -n "s/^\s*define('DC_VERSION',\s*'\(.*\)');/\1/p" inc/prepend.php) 29 | if [ "$DOTCLEAR_CURRENT_VERSION" != "$DOTCLEAR_VERSION" ]; then 30 | echo >&2 "Upgrading Dotclear from ${DOTCLEAR_CURRENT_VERSION} to ${DOTCLEAR_VERSION}" 31 | tar cf - --one-file-system -C /usr/src/dotclear . | tar xf - 32 | if [ -e inc/config.php ]; then 33 | # use mysqli driver instead of mysql (if used) 34 | sed -i "s|^\s*define('DC_DBDRIVER',\s*'mysql');|define('DC_DBDRIVER','mysqli');|" inc/config.php 35 | fi 36 | echo >&2 "Complete! Dotclear has been successfully upgraded to ${DOTCLEAR_VERSION}" 37 | fi 38 | fi 39 | 40 | # fix permissions 41 | chown -R www-data:www-data /var/www/html 42 | [ -e /var/www/html/config.php ] && chmod 600 /var/www/html/config.php 43 | 44 | exec "$@" 45 | -------------------------------------------------------------------------------- /fpm/fpm.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | server_name localhost; 4 | root /var/www/html; 5 | 6 | index index.php; 7 | 8 | location ~ ^/(db|cache|plugins|inc) { 9 | deny all; 10 | return 404; 11 | } 12 | 13 | location / { 14 | try_files $uri $uri/ @dotclear_path_info; 15 | } 16 | 17 | location @dotclear_path_info { 18 | rewrite ^/(.*) /index.php/$1 last; 19 | } 20 | 21 | location ~ [^/]\.php(/|$) { 22 | fastcgi_split_path_info ^(.+?\.php)(/.*)$; 23 | if (!-f $document_root$fastcgi_script_name) { 24 | return 404; 25 | } 26 | 27 | include fastcgi_params; 28 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 29 | fastcgi_param PATH_INFO $fastcgi_path_info; 30 | fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 31 | 32 | fastcgi_pass fpm:9000; 33 | fastcgi_index index.php; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /varnish/backends.vcl: -------------------------------------------------------------------------------- 1 | backend server1 { 2 | .host = "nginx"; 3 | .port = "80"; 4 | } 5 | 6 | import std; 7 | import directors; 8 | sub vcl_init { 9 | new backends_director = directors.round_robin(); 10 | backends_director.add_backend(server1); 11 | } 12 | 13 | sub vcl_recv { 14 | set req.backend_hint = backends_director.backend(); 15 | } 16 | --------------------------------------------------------------------------------