1
0
mirror of https://github.com/wallabag/docker synced 2025-12-13 17:56:31 +00:00

24 Commits
2.2.1 ... 2.3.1

Author SHA1 Message Date
Nicolas Lœuillet
bf0316bac6 Merge pull request #95 from wallabag/nicosomb-patch-1
wallabag 2.3.1
2017-12-26 22:23:26 +01:00
Nicolas Lœuillet
ae7aefe8e4 Updated parameters for 2.3.1 2017-12-26 21:35:43 +01:00
Nicolas Lœuillet
ef910d313c wallabag 2.3.1 2017-12-26 21:12:13 +01:00
Nicolas Lœuillet
51e3b625c0 Merge pull request #87 from bananenmannfrau/master
makes email confirmation for user registration configurable
2017-12-15 14:49:21 +01:00
Nicolas Lœuillet
dcaa684897 Updated README 2017-12-15 14:32:20 +01:00
bananenmannfrau
6edcd745c4 makes email confirmation for user registration configurable 2017-12-15 14:31:11 +01:00
Nicolas Lœuillet
7a476cdab0 Merge pull request #84 from Dehalion/master
allow to override database_charset and locale with env variables
2017-12-13 23:02:33 +01:00
Nicolas Lœuillet
6a7bbbb8d0 Merge pull request #89 from wallabag/wallabag-23
Updated image to wallabag 2.3.0
2017-12-13 22:43:17 +01:00
Nicolas Lœuillet
e5456115c1 Forced postgres 9.6 2017-12-13 22:32:43 +01:00
Nicolas Lœuillet
7b68684720 Updated image to wallabag 2.3.0 2017-12-12 22:28:19 +01:00
David Prem
b67e80a9f8 allow to override database_charset and locale with env variables 2017-09-20 18:06:33 +02:00
Nicolas Lœuillet
434b17cd8f Merge pull request #74 from Strubbl/use-ssl-for-composer-install
use https for getting composer
2017-08-25 08:55:41 +02:00
Sven Fischer
5123e9de38 use https for getting composer 2017-07-20 21:32:25 +02:00
Marvin Steadfast
5682aefa74 changed docs for persistent storage of images. #71 2017-05-30 11:19:36 +02:00
Thomas Citharel
bf82658342 Merge pull request #69 from wallabag/update-223
Update Dockerfile to 2.2.3
2017-05-18 11:46:16 +02:00
Nicolas Lœuillet
abb0647cbd Update Dockerfile to 2.2.3 2017-05-18 11:05:41 +02:00
Marvin Steadfast
6f22d1ef68 switched to alpine edge
there are alot of php fixes in edge. alot of people have problems with
php and older kernel versions to collect random data.

also included a alpine upgrade command. this will prevent docker from
building a wallabag image with older system files.
2017-05-09 08:59:37 +02:00
Marvin Steadfast
d1c050662b added edge main repo to fix rabbitmq-c dep for php7-amqp 2017-03-22 11:24:05 +01:00
Marvin Steadfast
038a5ea6c7 apk add uses now the no-cache option 2017-03-22 11:13:30 +01:00
Marvin Steadfast
c42058bf0f MariaDB default encoding utf8mb4 and maintenance
* MariaDB encoding is set when creating DB through the entrypoint
* Cleaning Dockerfile
  * Removed `POSTGRES_USER`
  * Combined run commands
  * Changed deprecated `MAINTAINER` to `LABEL`
2017-03-22 10:56:57 +01:00
Nicolas Lœuillet
3e4cd35253 Merge pull request #56 from wallabag/wllbg-222
Update Dockerfile with latest release
2017-03-08 10:00:11 +01:00
Nicolas Lœuillet
8c15693e12 Update Dockerfile with latest release 2017-03-02 15:49:19 +01:00
Marvin Steadfast
f6e4816eb5 provisioner function in entrypoint 2017-02-06 10:20:38 +01:00
Marvin Steadfast
bff2dd3d8b using alpine 3.5 instead of edge 2017-02-06 10:20:38 +01:00
7 changed files with 74 additions and 55 deletions

View File

@@ -1,61 +1,61 @@
FROM alpine:edge FROM alpine:edge
MAINTAINER Marvin Steadfast <marvin@xsteadfastx.org>
ARG WALLABAG_VERSION=2.2.1 LABEL maintainer "Marvin Steadfast <marvin@xsteadfastx.org>"
ARG POSTGRES_USER=postgres
RUN echo "@testing http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \ ARG WALLABAG_VERSION=2.3.1
&& apk add --update \
RUN set -ex \
&& apk update \
&& apk upgrade --available \
&& apk add \
ansible \ ansible \
curl \ curl \
git \ git \
libwebp@testing \ libwebp \
mariadb-client \ mariadb-client \
nginx \ nginx \
pcre \ pcre \
php7 \ php7 \
php7-amqp@testing \ php7-amqp \
php7-bcmath \ php7-bcmath \
php7-ctype@testing \ php7-ctype \
php7-curl@testing \ php7-curl \
php7-dom@testing \ php7-dom \
php7-fpm@testing \ php7-fpm \
php7-gd@testing \ php7-gd \
php7-gettext@testing \ php7-gettext \
php7-iconv@testing \ php7-iconv \
php7-json@testing \ php7-json \
php7-mbstring@testing \ php7-mbstring \
php7-openssl@testing \ php7-openssl \
php7-pdo_mysql@testing \ php7-pdo_mysql \
php7-pdo_pgsql@testing \ php7-pdo_pgsql \
php7-pdo_sqlite@testing \ php7-pdo_sqlite \
php7-phar@testing \ php7-phar \
php7-session@testing \ php7-session \
php7-xml@testing \ php7-simplexml \
php7-zlib@testing \ php7-tokenizer \
php7@testing\ php7-xml \
php7-zlib \
py-mysqldb \ py-mysqldb \
py-psycopg2 \ py-psycopg2 \
py-simplejson \ py-simplejson \
rabbitmq-c \
s6 \ s6 \
tar \ tar \
&& rm -rf /var/cache/apk/* && rm -rf /var/cache/apk/* \
RUN ln -s /usr/bin/php7 /usr/bin/php \
&& ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log && ln -sf /dev/stderr /var/log/nginx/error.log \
&& curl -s https://getcomposer.org/installer | php \
RUN curl -s http://getcomposer.org/installer | php \ && mv composer.phar /usr/local/bin/composer \
&& mv composer.phar /usr/local/bin/composer && git clone --branch $WALLABAG_VERSION --depth 1 https://github.com/wallabag/wallabag.git /var/www/wallabag
RUN git clone --branch $WALLABAG_VERSION --depth 1 https://github.com/wallabag/wallabag.git /var/www/wallabag
COPY root / COPY root /
RUN cd /var/www/wallabag \ RUN set -ex \
&& SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist && cd /var/www/wallabag \
&& SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist \
RUN chown -R nobody:nobody /var/www/wallabag && chown -R nobody:nobody /var/www/wallabag
EXPOSE 80 EXPOSE 80
ENTRYPOINT ["/entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -29,6 +29,8 @@ Default login is `wallabag:wallabag`.
- `-e SYMFONY__ENV__MAILER_PASSWORD=...`(defaults to "~", the SMTP password) - `-e SYMFONY__ENV__MAILER_PASSWORD=...`(defaults to "~", the SMTP password)
- `-e SYMFONY__ENV__FROM_EMAIL=...`(defaults to "wallabag@example.com", the address wallabag uses for outgoing emails) - `-e SYMFONY__ENV__FROM_EMAIL=...`(defaults to "wallabag@example.com", the address wallabag uses for outgoing emails)
- `-e SYMFONY__ENV__FOSUSER_REGISTRATION=...`(defaults to "true", enable or disable public user registration) - `-e SYMFONY__ENV__FOSUSER_REGISTRATION=...`(defaults to "true", enable or disable public user registration)
- `-e SYMFONY__ENV__FOSUSER_CONFIRMATION=...`(defaults to "true", enable or disable registration confirmation)
- `-e SYMFONY__ENV__DOMAIN_NAME=...` defaults to "https://your-wallabag-url-instance.com", the URL of your wallabag instance)
- `-e POPULATE_DATABASE=...`(defaults to "True". Does the DB has to be populated or is it an existing one) - `-e POPULATE_DATABASE=...`(defaults to "True". Does the DB has to be populated or is it an existing one)
## SQLite ## SQLite
@@ -42,7 +44,7 @@ $ docker run -p 80:80 wallabag/wallabag
and point your browser to `http://localhost:80`. For persistent storage you should start the container with a volume: and point your browser to `http://localhost:80`. For persistent storage you should start the container with a volume:
``` ```
$ docker run -v /opt/wallabag:/var/www/wallabag/data -p 80:80 wallabag/wallabag $ docker run -v /opt/wallabag/data:/var/www/wallabag/data -v -/opt/wallabag/images:/var/www/wallabag/web/assets/images -p 80:80 wallabag/wallabag
``` ```
## MariaDB / MySQL ## MariaDB / MySQL
@@ -59,7 +61,7 @@ $ docker run --name wallabag --link wallabag-db:wallabag-db -e "MYSQL_ROOT_PASSW
For using PostgreSQL you have to define some environment variables with the container. Example: For using PostgreSQL you have to define some environment variables with the container. Example:
``` ```
$ docker run --name wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -d postgres $ docker run --name wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -d postgres:9.6
$ docker run --name wallabag --link wallabag-db:wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -e "SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql" -e "SYMFONY__ENV__DATABASE_HOST=wallabag-db" -e "SYMFONY__ENV__DATABASE_PORT=5432" -e "SYMFONY__ENV__DATABASE_NAME=wallabag" -e "SYMFONY__ENV__DATABASE_USER=wallabag" -e "SYMFONY__ENV__DATABASE_PASSWORD=wallapass" -p 80:80 wallabag/wallabag $ docker run --name wallabag --link wallabag-db:wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -e "SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql" -e "SYMFONY__ENV__DATABASE_HOST=wallabag-db" -e "SYMFONY__ENV__DATABASE_PORT=5432" -e "SYMFONY__ENV__DATABASE_NAME=wallabag" -e "SYMFONY__ENV__DATABASE_USER=wallabag" -e "SYMFONY__ENV__DATABASE_PASSWORD=wallapass" -p 80:80 wallabag/wallabag
``` ```
@@ -91,7 +93,7 @@ $ docker exec -t NAME_OR_ID_OF_YOUR_WALLABAG_CONTAINER /var/www/wallabag/bin/con
It's a good way to use [docker-compose](https://docs.docker.com/compose/). Example: It's a good way to use [docker-compose](https://docs.docker.com/compose/). Example:
``` ```
version: '2' version: '3'
services: services:
wallabag: wallabag:
image: wallabag/wallabag image: wallabag/wallabag
@@ -109,12 +111,14 @@ services:
- SYMFONY__ENV__FROM_EMAIL=wallabag@example.com - SYMFONY__ENV__FROM_EMAIL=wallabag@example.com
ports: ports:
- "80" - "80"
volumes:
- /opt/wallabag/images:/var/www/wallabag/web/assets/images
db: db:
image: mariadb image: mariadb
environment: environment:
- MYSQL_ROOT_PASSWORD=wallaroot - MYSQL_ROOT_PASSWORD=wallaroot
volumes: volumes:
- /opt/wallabag:/var/lib/mysql - /opt/wallabag/data:/var/lib/mysql
redis: redis:
image: redis:alpine image: redis:alpine
``` ```

View File

@@ -1,16 +1,26 @@
#!/bin/sh #!/bin/sh
provisioner () {
echo "Starting provisioner..."
if ! out=`ansible-playbook -i /etc/ansible/hosts /etc/ansible/entrypoint.yml -c local "$@"`;then
echo $out;
fi
echo "Provisioner finished."
}
if [ "$1" = "wallabag" ];then if [ "$1" = "wallabag" ];then
ansible-playbook -i /etc/ansible/hosts /etc/ansible/entrypoint.yml -c local provisioner
exec s6-svscan /etc/s6/ exec s6-svscan /etc/s6/
fi fi
if [ "$1" = "import" ];then if [ "$1" = "import" ];then
ansible-playbook -i /etc/ansible/hosts /etc/ansible/entrypoint.yml -c local --skip-tags=firstrun provisioner --skip-tags=firstrun
cd /var/www/wallabag/ cd /var/www/wallabag/
exec su -c "bin/console wallabag:import:redis-worker -e=prod $2 -vv" -s /bin/sh nobody exec su -c "bin/console wallabag:import:redis-worker -e=prod $2 -vv" -s /bin/sh nobody
fi fi
if [ "$1" = "migrate" ];then if [ "$1" = "migrate" ];then
ansible-playbook -i /etc/ansible/hosts /etc/ansible/entrypoint.yml -c local provisioner
cd /var/www/wallabag/ cd /var/www/wallabag/
exec su -c "bin/console doctrine:migrations:migrate --env=prod --no-interaction" -s /bin/sh nobody exec su -c "bin/console doctrine:migrations:migrate --env=prod --no-interaction" -s /bin/sh nobody
fi fi

View File

@@ -13,13 +13,17 @@
database_root_user_postgres: "{{ lookup('env', 'POSTGRES_USER') }}" database_root_user_postgres: "{{ lookup('env', 'POSTGRES_USER') }}"
database_root_password_postgres: "{{ lookup('env', 'POSTGRES_PASSWORD') }}" database_root_password_postgres: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"
database_user: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_USER')|default('root', true) }}" database_user: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_USER')|default('root', true) }}"
database_charset: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_CHARSET')|default('utf8', true) }}"
populate_database: "{{ lookup('env', 'POPULATE_DATABASE')|default(True, true) }}" populate_database: "{{ lookup('env', 'POPULATE_DATABASE')|default(True, true) }}"
locale: "{{ lookup('env', 'SYMFONY__ENV__LOCALE')|default('en', true) }}"
secret: "{{ lookup('env', 'SYMFONY__ENV__SECRET')|default('ovmpmAWXRCabNlMgzlzFXDYmCFfzGv', true) }}" secret: "{{ lookup('env', 'SYMFONY__ENV__SECRET')|default('ovmpmAWXRCabNlMgzlzFXDYmCFfzGv', true) }}"
mailer_host: "{{ lookup('env', 'SYMFONY__ENV__MAILER_HOST')|default('127.0.0.1', true) }}" mailer_host: "{{ lookup('env', 'SYMFONY__ENV__MAILER_HOST')|default('127.0.0.1', true) }}"
mailer_user: "{{ lookup('env', 'SYMFONY__ENV__MAILER_USER')|default('~', true) }}" mailer_user: "{{ lookup('env', 'SYMFONY__ENV__MAILER_USER')|default('~', true) }}"
mailer_password: "{{ lookup('env', 'SYMFONY__ENV__MAILER_PASSWORD')|default('~', true) }}" mailer_password: "{{ lookup('env', 'SYMFONY__ENV__MAILER_PASSWORD')|default('~', true) }}"
from_email: "{{ lookup('env', 'SYMFONY__ENV__FROM_EMAIL')|default('wallabag@example.com', true) }}" from_email: "{{ lookup('env', 'SYMFONY__ENV__FROM_EMAIL')|default('wallabag@example.com', true) }}"
registration: "{{ lookup('env', 'SYMFONY__ENV__FOSUSER_REGISTRATION')|default('true', true) }}" registration: "{{ lookup('env', 'SYMFONY__ENV__FOSUSER_REGISTRATION')|default('true', true) }}"
registration_mail_confirmation: "{{ lookup('env', 'SYMFONY__ENV__FOSUSER_CONFIRMATION')|default('true', true) }}"
domain_name: "{{ lookup('env', 'SYMFONY__ENV__DOMAIN_NAME')|default('https://your-wallabag-url-instance.com', true) }}"
tasks: tasks:
@@ -70,6 +74,7 @@
login_port={{ database_port }} login_port={{ database_port }}
login_user=root login_user=root
login_password="{{ database_root_password_mariadb }}" login_password="{{ database_root_password_mariadb }}"
encoding="utf8mb4"
notify: run install notify: run install
when: (database_driver == 'pdo_mysql') and when: (database_driver == 'pdo_mysql') and
(populate_database == True) (populate_database == True)

View File

@@ -8,14 +8,17 @@ parameters:
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite" database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
database_table_prefix: wallabag_ database_table_prefix: wallabag_
database_socket: null database_socket: null
database_charset: utf8 database_charset: {{ database_charset }}
database_driver_class: null
domain_name: {{ domain_name }}
mailer_transport: smtp mailer_transport: smtp
mailer_host: {{ mailer_host }} mailer_host: {{ mailer_host }}
mailer_user: {{ mailer_user }} mailer_user: {{ mailer_user }}
mailer_password: {{ mailer_password }} mailer_password: {{ mailer_password }}
locale: en locale: {{ locale }}
# A secret key that's used to generate certain security-related tokens # A secret key that's used to generate certain security-related tokens
secret: {{ secret }} secret: {{ secret }}
@@ -26,7 +29,7 @@ parameters:
# fosuser stuff # fosuser stuff
fosuser_registration: {{ registration }} fosuser_registration: {{ registration }}
fosuser_confirmation: true fosuser_confirmation: {{ registration_mail_confirmation }}
from_email: {{ from_email }} from_email: {{ from_email }}
@@ -45,6 +48,3 @@ parameters:
redis_port: 6379 redis_port: 6379
redis_path: null redis_path: null
redis_password: null redis_password: null
# sites credentials
sites_credentials: {}

View File

@@ -9,6 +9,9 @@ parameters:
database_table_prefix: wallabag_ database_table_prefix: wallabag_
database_socket: null database_socket: null
database_charset: utf8 database_charset: utf8
database_driver_class: null
domain_name: https://your-wallabag-url-instance.com
test_database_driver: pdo_sqlite test_database_driver: pdo_sqlite
test_database_host: 127.0.0.1 test_database_host: 127.0.0.1
@@ -53,6 +56,3 @@ parameters:
redis_port: 6379 redis_port: 6379
redis_path: null redis_path: null
redis_password: null redis_password: null
# sites credentials
sites_credentials: {}

View File

@@ -18,7 +18,7 @@ services:
ports: ports:
- "127.0.0.1:80:80" - "127.0.0.1:80:80"
db: db:
image: postgres image: postgres:9.6
environment: environment:
- POSTGRES_PASSWORD=my-secret-pw - POSTGRES_PASSWORD=my-secret-pw
- POSTGRES_USER=my-super-user - POSTGRES_USER=my-super-user