mirror of
https://github.com/mykitserver/docker-limesurvey.git
synced 2025-12-06 16:39:11 +01:00
Compare commits
72 Commits
6.2.5-2308
...
6.4.9-2402
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4c919b92c | ||
|
|
e0ceb06881 | ||
|
|
5b80aa6c06 | ||
|
|
5318ab5f54 | ||
|
|
ddb0a1513c | ||
|
|
79928f4075 | ||
|
|
b297c16f7c | ||
|
|
322cf3732e | ||
|
|
22fc8f2d56 | ||
|
|
e4facd925f | ||
|
|
80098d872b | ||
|
|
23f8264caa | ||
|
|
ef7111d27c | ||
|
|
73ff270819 | ||
|
|
b8ef3a9e7c | ||
|
|
73231ca1e2 | ||
|
|
121fa8db27 | ||
|
|
d7ce8fa25b | ||
|
|
930909ced0 | ||
|
|
7343b66cba | ||
|
|
55c7a955bc | ||
|
|
02e8715589 | ||
|
|
b19d599e78 | ||
|
|
98db5c64e9 | ||
|
|
cbc70e8d1f | ||
|
|
fbd0af36a9 | ||
|
|
cf6a81b1f0 | ||
|
|
7f9fb7c962 | ||
|
|
8b727d954f | ||
|
|
ef3fab259e | ||
|
|
e693a64bf5 | ||
|
|
b05e317c96 | ||
|
|
0744660347 | ||
|
|
96cc3ca3f7 | ||
|
|
c1ea856389 | ||
|
|
30ccc35721 | ||
|
|
6fd8b6983a | ||
|
|
15bdc9507e | ||
|
|
8cfc53adba | ||
|
|
7e73bf5223 | ||
|
|
e73940ecd8 | ||
|
|
487881f785 | ||
|
|
2c34e0fd73 | ||
|
|
98aa523b48 | ||
|
|
5b13fa3dd0 | ||
|
|
554a86cf2c | ||
|
|
97aa52b49e | ||
|
|
ee74cfbd89 | ||
|
|
38ea5d09ff | ||
|
|
2ef585ab53 | ||
|
|
195e017967 | ||
|
|
d53b6ed63d | ||
|
|
c40d1b648d | ||
|
|
bd14d877e5 | ||
|
|
5c95e13179 | ||
|
|
0e35341b7c | ||
|
|
469ca15cb5 | ||
|
|
4f8ea7c4f1 | ||
|
|
9c19d78e26 | ||
|
|
30cd0c51cc | ||
|
|
538f9837df | ||
|
|
8de96875af | ||
|
|
adbecadb0e | ||
|
|
d6270a9cad | ||
|
|
265b375fc1 | ||
|
|
9135f556f5 | ||
|
|
8ec394c7af | ||
|
|
acfd7b529d | ||
|
|
537c1e5313 | ||
|
|
1c108c70df | ||
|
|
42e521a759 | ||
|
|
432b17d255 |
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- 6.0/fpm-alpine/Dockerfile
|
- 6.0/fpm-alpine/Dockerfile
|
||||||
- 6.0/fpm/Dockerfile
|
- 6.0/fpm/Dockerfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
- uses: hadolint/hadolint-action@v3.1.0
|
- uses: hadolint/hadolint-action@v3.1.0
|
||||||
with:
|
with:
|
||||||
dockerfile: ${{ matrix.dockerfile }}
|
dockerfile: ${{ matrix.dockerfile }}
|
||||||
@@ -31,24 +31,24 @@ jobs:
|
|||||||
contents: read
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- name: 'Check out the repo'
|
- name: 'Check out the repo'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
- name: 'Set up QEMU'
|
- name: 'Set up QEMU'
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v3
|
||||||
with:
|
with:
|
||||||
platforms: 'arm64,arm'
|
platforms: 'arm64,arm'
|
||||||
- name: 'Set up Docker Buildx'
|
- name: 'Set up Docker Buildx'
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v3
|
||||||
with:
|
with:
|
||||||
buildkitd-flags: --debug
|
buildkitd-flags: --debug
|
||||||
- name: 'Log in to DockerHub'
|
- name: 'Log in to DockerHub'
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||||
- name: 'Apache variant metadata'
|
- name: 'Apache variant metadata'
|
||||||
id: metadata-apache
|
id: metadata-apache
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: |
|
images: |
|
||||||
docker.io/martialblog/limesurvey
|
docker.io/martialblog/limesurvey
|
||||||
@@ -59,7 +59,7 @@ jobs:
|
|||||||
latest=true
|
latest=true
|
||||||
suffix=-apache
|
suffix=-apache
|
||||||
- name: 'Build and push latest Apache container images'
|
- name: 'Build and push latest Apache container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 6.0/apache
|
context: 6.0/apache
|
||||||
push: true
|
push: true
|
||||||
@@ -69,7 +69,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 'FPM variant metadata'
|
- name: 'FPM variant metadata'
|
||||||
id: metadata-fpm
|
id: metadata-fpm
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: |
|
images: |
|
||||||
docker.io/martialblog/limesurvey
|
docker.io/martialblog/limesurvey
|
||||||
@@ -80,7 +80,7 @@ jobs:
|
|||||||
latest=false
|
latest=false
|
||||||
suffix=-fpm
|
suffix=-fpm
|
||||||
- name: 'Build and push latest fpm container images'
|
- name: 'Build and push latest fpm container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 6.0/fpm
|
context: 6.0/fpm
|
||||||
push: true
|
push: true
|
||||||
@@ -90,7 +90,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 'FPM Alpine variant metadata'
|
- name: 'FPM Alpine variant metadata'
|
||||||
id: metadata-fpm-alpine
|
id: metadata-fpm-alpine
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: |
|
images: |
|
||||||
docker.io/martialblog/limesurvey
|
docker.io/martialblog/limesurvey
|
||||||
@@ -101,7 +101,7 @@ jobs:
|
|||||||
latest=false
|
latest=false
|
||||||
suffix=-fpm-alpine
|
suffix=-fpm-alpine
|
||||||
- name: 'Build and push latest fpm-alpine container images'
|
- name: 'Build and push latest fpm-alpine container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 6.0/fpm-alpine
|
context: 6.0/fpm-alpine
|
||||||
push: true
|
push: true
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- 5.0/fpm-alpine/Dockerfile
|
- 5.0/fpm-alpine/Dockerfile
|
||||||
- 5.0/fpm/Dockerfile
|
- 5.0/fpm/Dockerfile
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
- uses: hadolint/hadolint-action@v3.1.0
|
- uses: hadolint/hadolint-action@v3.1.0
|
||||||
with:
|
with:
|
||||||
dockerfile: ${{ matrix.dockerfile }}
|
dockerfile: ${{ matrix.dockerfile }}
|
||||||
@@ -31,24 +31,24 @@ jobs:
|
|||||||
contents: read
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- name: 'Check out the repo'
|
- name: 'Check out the repo'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
- name: 'Set up QEMU'
|
- name: 'Set up QEMU'
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v3
|
||||||
with:
|
with:
|
||||||
platforms: 'arm64,arm'
|
platforms: 'arm64,arm'
|
||||||
- name: 'Set up Docker Buildx'
|
- name: 'Set up Docker Buildx'
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v3
|
||||||
with:
|
with:
|
||||||
buildkitd-flags: --debug
|
buildkitd-flags: --debug
|
||||||
- name: 'Log in to DockerHub'
|
- name: 'Log in to DockerHub'
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||||
- name: 'Apache variant metadata'
|
- name: 'Apache variant metadata'
|
||||||
id: metadata-apache
|
id: metadata-apache
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: |
|
images: |
|
||||||
docker.io/martialblog/limesurvey
|
docker.io/martialblog/limesurvey
|
||||||
@@ -59,7 +59,7 @@ jobs:
|
|||||||
latest=false
|
latest=false
|
||||||
suffix=-apache
|
suffix=-apache
|
||||||
- name: 'Build and push LTS apache container images'
|
- name: 'Build and push LTS apache container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 5.0/apache
|
context: 5.0/apache
|
||||||
push: true
|
push: true
|
||||||
@@ -69,7 +69,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 'FPM variant metadata'
|
- name: 'FPM variant metadata'
|
||||||
id: metadata-fpm
|
id: metadata-fpm
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: |
|
images: |
|
||||||
docker.io/martialblog/limesurvey
|
docker.io/martialblog/limesurvey
|
||||||
@@ -80,7 +80,7 @@ jobs:
|
|||||||
latest=false
|
latest=false
|
||||||
suffix=-fpm
|
suffix=-fpm
|
||||||
- name: 'Build and push LTS fpm container images'
|
- name: 'Build and push LTS fpm container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 5.0/fpm
|
context: 5.0/fpm
|
||||||
push: true
|
push: true
|
||||||
@@ -90,7 +90,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 'FPM Alpine variant metadata'
|
- name: 'FPM Alpine variant metadata'
|
||||||
id: metadata-fpm-alpine
|
id: metadata-fpm-alpine
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: |
|
images: |
|
||||||
docker.io/martialblog/limesurvey
|
docker.io/martialblog/limesurvey
|
||||||
@@ -101,7 +101,7 @@ jobs:
|
|||||||
latest=false
|
latest=false
|
||||||
suffix=-fpm-alpine
|
suffix=-fpm-alpine
|
||||||
- name: 'Build and push LTS fpm-alpine container images'
|
- name: 'Build and push LTS fpm-alpine container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 5.0/fpm-alpine
|
context: 5.0/fpm-alpine
|
||||||
push: true
|
push: true
|
||||||
|
|||||||
2
.github/workflows/lint-dockerfiles.yaml
vendored
2
.github/workflows/lint-dockerfiles.yaml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
- 6.0/fpm/Dockerfile
|
- 6.0/fpm/Dockerfile
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
- uses: hadolint/hadolint-action@v3.1.0
|
- uses: hadolint/hadolint-action@v3.1.0
|
||||||
with:
|
with:
|
||||||
dockerfile: ${{ matrix.dockerfile }}
|
dockerfile: ${{ matrix.dockerfile }}
|
||||||
|
|||||||
@@ -22,18 +22,18 @@ jobs:
|
|||||||
- linux/arm64
|
- linux/arm64
|
||||||
steps:
|
steps:
|
||||||
- name: 'Check out the repo'
|
- name: 'Check out the repo'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
|
|
||||||
- name: 'Set up QEMU'
|
- name: 'Set up QEMU'
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v3
|
||||||
with:
|
with:
|
||||||
platforms: 'arm64,arm'
|
platforms: 'arm64,arm'
|
||||||
|
|
||||||
- name: 'Set up Docker Buildx'
|
- name: 'Set up Docker Buildx'
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: 'Build Container images'
|
- name: 'Build Container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 6.0/${{ matrix.context }}
|
context: 6.0/${{ matrix.context }}
|
||||||
push: false
|
push: false
|
||||||
|
|||||||
@@ -14,18 +14,18 @@ jobs:
|
|||||||
- fpm
|
- fpm
|
||||||
steps:
|
steps:
|
||||||
- name: 'Check out the repo'
|
- name: 'Check out the repo'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
|
|
||||||
- name: 'Set up QEMU'
|
- name: 'Set up QEMU'
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v3
|
||||||
with:
|
with:
|
||||||
platforms: 'arm64,arm'
|
platforms: 'arm64,arm'
|
||||||
|
|
||||||
- name: 'Set up Docker Buildx'
|
- name: 'Set up Docker Buildx'
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: 'Build Container images'
|
- name: 'Build Container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 6.0/${{ matrix.context }}
|
context: 6.0/${{ matrix.context }}
|
||||||
push: false
|
push: false
|
||||||
|
|||||||
@@ -14,16 +14,16 @@ jobs:
|
|||||||
- fpm
|
- fpm
|
||||||
steps:
|
steps:
|
||||||
- name: 'Check out the repo'
|
- name: 'Check out the repo'
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
|
||||||
|
|
||||||
- name: 'Set up QEMU'
|
- name: 'Set up QEMU'
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
- name: 'Set up Docker Buildx'
|
- name: 'Set up Docker Buildx'
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: 'Build Container images'
|
- name: 'Build Container images'
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: 5.0/${{ matrix.context }}
|
context: 5.0/${{ matrix.context }}
|
||||||
push: false
|
push: false
|
||||||
|
|||||||
@@ -81,9 +81,9 @@ RUN a2enmod headers rewrite remoteip; \
|
|||||||
# Use the default production configuration
|
# Use the default production configuration
|
||||||
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
||||||
|
|
||||||
ARG version="5.6.36+230830"
|
ARG version="5.6.55+240220"
|
||||||
ARG sha256_checksum="39c9f622e0aca58ab759f7a6fcd360deb7d3affa03bfc1fe64cd1ec62b4702f5"
|
ARG sha256_checksum="41b4ed2ecdead13bd8bee787bcbdb51b4db215c947db811aaedcb67688e9e90b"
|
||||||
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
|
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
|
||||||
ARG USER=www-data
|
ARG USER=www-data
|
||||||
ARG LISTEN_PORT=8080
|
ARG LISTEN_PORT=8080
|
||||||
ENV LIMESURVEY_VERSION=$version
|
ENV LIMESURVEY_VERSION=$version
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ if [ -f application/config/security.php ]; then
|
|||||||
echo 'Info: security.php already provisioned'
|
echo 'Info: security.php already provisioned'
|
||||||
else
|
else
|
||||||
echo 'Info: Creating security.php'
|
echo 'Info: Creating security.php'
|
||||||
if [ -n "$ENCRYPT_KEYPAIR" ]; then
|
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
|
||||||
|
|
||||||
cat <<EOF > application/config/security.php
|
cat <<EOF > application/config/security.php
|
||||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|||||||
@@ -51,9 +51,9 @@ RUN set -ex; \
|
|||||||
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
|
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
|
||||||
apk del --no-cache --no-network .build-deps
|
apk del --no-cache --no-network .build-deps
|
||||||
|
|
||||||
ARG version="5.6.36+230830"
|
ARG version="5.6.55+240220"
|
||||||
ARG sha256_checksum="39c9f622e0aca58ab759f7a6fcd360deb7d3affa03bfc1fe64cd1ec62b4702f5"
|
ARG sha256_checksum="41b4ed2ecdead13bd8bee787bcbdb51b4db215c947db811aaedcb67688e9e90b"
|
||||||
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
|
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
|
||||||
ARG USER=www-data
|
ARG USER=www-data
|
||||||
ENV LIMESURVEY_VERSION=$version
|
ENV LIMESURVEY_VERSION=$version
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ if [ -f application/config/security.php ]; then
|
|||||||
echo 'Info: security.php already provisioned'
|
echo 'Info: security.php already provisioned'
|
||||||
else
|
else
|
||||||
echo 'Info: Creating security.php'
|
echo 'Info: Creating security.php'
|
||||||
if [ -n "$ENCRYPT_KEYPAIR" ]; then
|
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
|
||||||
|
|
||||||
cat <<EOF > application/config/security.php
|
cat <<EOF > application/config/security.php
|
||||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|||||||
@@ -68,9 +68,9 @@ RUN set -ex; \
|
|||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ARG version="5.6.36+230830"
|
ARG version="5.6.55+240220"
|
||||||
ARG sha256_checksum="39c9f622e0aca58ab759f7a6fcd360deb7d3affa03bfc1fe64cd1ec62b4702f5"
|
ARG sha256_checksum="41b4ed2ecdead13bd8bee787bcbdb51b4db215c947db811aaedcb67688e9e90b"
|
||||||
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
|
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
|
||||||
ARG USER=www-data
|
ARG USER=www-data
|
||||||
ENV LIMESURVEY_VERSION=$version
|
ENV LIMESURVEY_VERSION=$version
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ if [ -f application/config/security.php ]; then
|
|||||||
echo 'Info: security.php already provisioned'
|
echo 'Info: security.php already provisioned'
|
||||||
else
|
else
|
||||||
echo 'Info: Creating security.php'
|
echo 'Info: Creating security.php'
|
||||||
if [ -n "$ENCRYPT_KEYPAIR" ]; then
|
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
|
||||||
|
|
||||||
cat <<EOF > application/config/security.php
|
cat <<EOF > application/config/security.php
|
||||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM docker.io/php:8.0-apache
|
FROM docker.io/php:8.1-apache
|
||||||
LABEL maintainer="markus@martialblog.de"
|
LABEL maintainer="markus@martialblog.de"
|
||||||
|
|
||||||
# Install OS dependencies
|
# Install OS dependencies
|
||||||
@@ -64,6 +64,13 @@ RUN set -ex; \
|
|||||||
| cut -d: -f1 \
|
| cut -d: -f1 \
|
||||||
| sort -u \
|
| sort -u \
|
||||||
| xargs -rt apt-mark manual; \
|
| xargs -rt apt-mark manual; \
|
||||||
|
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
||||||
|
| awk '$3 ~ /^\/lib/ { print "/usr"$3 }' \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -r dpkg-query -S \
|
||||||
|
| cut -d: -f1 \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -rt apt-mark manual; \
|
||||||
\
|
\
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
@@ -81,9 +88,9 @@ RUN a2enmod headers rewrite remoteip; \
|
|||||||
# Use the default production configuration
|
# Use the default production configuration
|
||||||
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
||||||
|
|
||||||
ARG version="6.2.5+230828"
|
ARG version="6.4.9+240226"
|
||||||
ARG sha256_checksum="ce87447506c2c25cd0cea2e1dd38263b10e843f45a91a41cb0d37a5818d49845"
|
ARG sha256_checksum="7edffb70d7139b380cf16aae118a9f11ee15145e9360e37d09a4735990facd91"
|
||||||
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
|
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
|
||||||
ARG USER=www-data
|
ARG USER=www-data
|
||||||
ARG LISTEN_PORT=8080
|
ARG LISTEN_PORT=8080
|
||||||
ENV LIMESURVEY_VERSION=$version
|
ENV LIMESURVEY_VERSION=$version
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ if [ -f application/config/security.php ]; then
|
|||||||
echo 'Info: security.php already provisioned'
|
echo 'Info: security.php already provisioned'
|
||||||
else
|
else
|
||||||
echo 'Info: Creating security.php'
|
echo 'Info: Creating security.php'
|
||||||
if [ -n "$ENCRYPT_KEYPAIR" ]; then
|
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
|
||||||
|
|
||||||
cat <<EOF > application/config/security.php
|
cat <<EOF > application/config/security.php
|
||||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM docker.io/php:8.0-fpm-alpine
|
FROM docker.io/php:8.1-fpm-alpine
|
||||||
LABEL maintainer="markus@martialblog.de"
|
LABEL maintainer="markus@martialblog.de"
|
||||||
|
|
||||||
# Install OS dependencies
|
# Install OS dependencies
|
||||||
@@ -51,9 +51,9 @@ RUN set -ex; \
|
|||||||
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
|
apk add --no-cache --no-network --virtual .limesurvey-phpext-rundeps $runDeps; \
|
||||||
apk del --no-cache --no-network .build-deps
|
apk del --no-cache --no-network .build-deps
|
||||||
|
|
||||||
ARG version="6.2.5+230828"
|
ARG version="6.4.9+240226"
|
||||||
ARG sha256_checksum="ce87447506c2c25cd0cea2e1dd38263b10e843f45a91a41cb0d37a5818d49845"
|
ARG sha256_checksum="7edffb70d7139b380cf16aae118a9f11ee15145e9360e37d09a4735990facd91"
|
||||||
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
|
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
|
||||||
ARG USER=www-data
|
ARG USER=www-data
|
||||||
ENV LIMESURVEY_VERSION=$version
|
ENV LIMESURVEY_VERSION=$version
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ if [ -f application/config/security.php ]; then
|
|||||||
echo 'Info: security.php already provisioned'
|
echo 'Info: security.php already provisioned'
|
||||||
else
|
else
|
||||||
echo 'Info: Creating security.php'
|
echo 'Info: Creating security.php'
|
||||||
if [ -n "$ENCRYPT_KEYPAIR" ]; then
|
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
|
||||||
|
|
||||||
cat <<EOF > application/config/security.php
|
cat <<EOF > application/config/security.php
|
||||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM docker.io/php:8.0-fpm
|
FROM docker.io/php:8.1-fpm
|
||||||
LABEL maintainer="markus@martialblog.de"
|
LABEL maintainer="markus@martialblog.de"
|
||||||
|
|
||||||
# Install OS dependencies
|
# Install OS dependencies
|
||||||
@@ -64,13 +64,20 @@ RUN set -ex; \
|
|||||||
| cut -d: -f1 \
|
| cut -d: -f1 \
|
||||||
| sort -u \
|
| sort -u \
|
||||||
| xargs -rt apt-mark manual; \
|
| xargs -rt apt-mark manual; \
|
||||||
|
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
|
||||||
|
| awk '$3 ~ /^\/lib/ { print "/usr"$3 }' \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -r dpkg-query -S \
|
||||||
|
| cut -d: -f1 \
|
||||||
|
| sort -u \
|
||||||
|
| xargs -rt apt-mark manual; \
|
||||||
\
|
\
|
||||||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ARG version="6.2.5+230828"
|
ARG version="6.4.9+240226"
|
||||||
ARG sha256_checksum="ce87447506c2c25cd0cea2e1dd38263b10e843f45a91a41cb0d37a5818d49845"
|
ARG sha256_checksum="7edffb70d7139b380cf16aae118a9f11ee15145e9360e37d09a4735990facd91"
|
||||||
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/${version}.tar.gz"
|
ARG archive_url="https://github.com/LimeSurvey/LimeSurvey/archive/refs/tags/${version}.tar.gz"
|
||||||
ARG USER=www-data
|
ARG USER=www-data
|
||||||
ENV LIMESURVEY_VERSION=$version
|
ENV LIMESURVEY_VERSION=$version
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ if [ -f application/config/security.php ]; then
|
|||||||
echo 'Info: security.php already provisioned'
|
echo 'Info: security.php already provisioned'
|
||||||
else
|
else
|
||||||
echo 'Info: Creating security.php'
|
echo 'Info: Creating security.php'
|
||||||
if [ -n "$ENCRYPT_KEYPAIR" ]; then
|
if [ -n "$ENCRYPT_KEYPAIR" ] || [ -n "$ENCRYPT_SECRET_BOX_KEY" ]; then
|
||||||
|
|
||||||
cat <<EOF > application/config/security.php
|
cat <<EOF > application/config/security.php
|
||||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||||
|
|||||||
@@ -115,10 +115,10 @@ If you are running LimeSurvey behind a Reverse Proxy you might need some additio
|
|||||||
| DB_MYSQL_ENGINE | MySQL engine used for survey tables (values: MyISAM, InnoDB, default: MyISAM) |
|
| DB_MYSQL_ENGINE | MySQL engine used for survey tables (values: MyISAM, InnoDB, default: MyISAM) |
|
||||||
| DB_USERNAME | Database user |
|
| DB_USERNAME | Database user |
|
||||||
| DB_PASSWORD | Database user's password |
|
| DB_PASSWORD | Database user's password |
|
||||||
| ADMIN_USER | Initial LimeSurvey Admin User |
|
| ADMIN_USER | Initial LimeSurvey Admin Username (for signing into admin panel) |
|
||||||
| ADMIN_NAME | Initial LimeSurvey Admin Username |
|
| ADMIN_NAME | Initial LimeSurvey Admin Name |
|
||||||
| ADMIN_EMAIL | Initial LimeSurvey Admin Email |
|
| ADMIN_EMAIL | Initial LimeSurvey Admin Email |
|
||||||
| ADMIN_PASSWORD | Initial LimeSurvey Admin Password |
|
| ADMIN_PASSWORD | Initial LimeSurvey Admin Password (for signing into admin panel) |
|
||||||
| PUBLIC_URL | Public URL for public scripts |
|
| PUBLIC_URL | Public URL for public scripts |
|
||||||
| BASE_URL | Application Base URL |
|
| BASE_URL | Application Base URL |
|
||||||
| URL_FORMAT | URL Format. path or get |
|
| URL_FORMAT | URL Format. path or get |
|
||||||
@@ -151,6 +151,8 @@ For further details on the settings see: https://manual.limesurvey.org/Optional_
|
|||||||
|
|
||||||
The easiest way to get a fully featured and functional setup is using a docker-compose file. Several examples are provided in the [repository](https://github.com/martialblog/docker-limesurvey).
|
The easiest way to get a fully featured and functional setup is using a docker-compose file. Several examples are provided in the [repository](https://github.com/martialblog/docker-limesurvey).
|
||||||
|
|
||||||
|
**Hint:** You need to configure a database and Limesurvey password in the `docker-compose` files before starting. No defaults are provided to discourage production use with default passwords.
|
||||||
|
|
||||||
```
|
```
|
||||||
docker-compose up
|
docker-compose up
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ services:
|
|||||||
- lime-db
|
- lime-db
|
||||||
environment:
|
environment:
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
- "PUBLIC_URL=http://my.survey.localhost:8080" # Example, Change this
|
- "PUBLIC_URL=http://my.survey.localhost:8080" # Example, Change this
|
||||||
- "BASE_URL=http://my.survey.localhost:8080" # Example, Change this
|
- "BASE_URL=http://my.survey.localhost:8080" # Example, Change this
|
||||||
proxy:
|
proxy:
|
||||||
@@ -24,6 +24,6 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "MYSQL_USER=limesurvey"
|
- "MYSQL_USER=limesurvey"
|
||||||
- "MYSQL_DATABASE=limesurvey"
|
- "MYSQL_DATABASE=limesurvey"
|
||||||
- "MYSQL_PASSWORD=secret"
|
# - "MYSQL_PASSWORD="
|
||||||
- "MYSQL_ROOT_PASSWORD=secret"
|
# - "MYSQL_ROOT_PASSWORD="
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ services:
|
|||||||
- DB_TYPE=pgsql
|
- DB_TYPE=pgsql
|
||||||
- DB_PORT=5432
|
- DB_PORT=5432
|
||||||
- DB_HOST=db
|
- DB_HOST=db
|
||||||
- DB_PASSWORD=example
|
# - DB_PASSWORD=
|
||||||
- DB_NAME=limesurvey
|
- DB_NAME=limesurvey
|
||||||
- DB_USERNAME=limesurvey
|
- DB_USERNAME=limesurvey
|
||||||
- ADMIN_USER=admin
|
- ADMIN_USER=admin
|
||||||
- ADMIN_NAME=Admin
|
- ADMIN_NAME=Admin
|
||||||
- ADMIN_PASSWORD=example
|
# - ADMIN_PASSWORD=
|
||||||
- ADMIN_EMAIL=admin@example.com
|
- ADMIN_EMAIL=admin@example.com
|
||||||
- PUBLIC_URL=foobar.com
|
- PUBLIC_URL=foobar.com
|
||||||
volumes:
|
volumes:
|
||||||
@@ -25,11 +25,11 @@ services:
|
|||||||
image: docker.io/postgres:10-alpine
|
image: docker.io/postgres:10-alpine
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- db-data:/var/lib/postgresql
|
- db-data:/var/lib/postgresql/data
|
||||||
environment:
|
environment:
|
||||||
- POSTGRES_USER=limesurvey
|
- POSTGRES_USER=limesurvey
|
||||||
- POSTGRES_DB=limesurvey
|
- POSTGRES_DB=limesurvey
|
||||||
- POSTGRES_PASSWORD=example
|
# - POSTGRES_PASSWORD=
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
limesurvey:
|
limesurvey:
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ services:
|
|||||||
- lime-db
|
- lime-db
|
||||||
environment:
|
environment:
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
lime-web:
|
lime-web:
|
||||||
build:
|
build:
|
||||||
context: nginx-certbot/
|
context: nginx-certbot/
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
@@ -44,7 +44,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "MYSQL_USER=limesurvey"
|
- "MYSQL_USER=limesurvey"
|
||||||
- "MYSQL_DATABASE=limesurvey"
|
- "MYSQL_DATABASE=limesurvey"
|
||||||
- "MYSQL_PASSWORD=secret"
|
# - "MYSQL_PASSWORD="
|
||||||
- "MYSQL_ROOT_PASSWORD=secret"
|
# - "MYSQL_ROOT_PASSWORD="
|
||||||
volumes:
|
volumes:
|
||||||
lime:
|
lime:
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ services:
|
|||||||
- lime-db
|
- lime-db
|
||||||
environment:
|
environment:
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
lime-web:
|
lime-web:
|
||||||
image: docker.io/nginx:alpine
|
image: docker.io/nginx:alpine
|
||||||
links:
|
links:
|
||||||
@@ -32,7 +32,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "MYSQL_USER=limesurvey"
|
- "MYSQL_USER=limesurvey"
|
||||||
- "MYSQL_DATABASE=limesurvey"
|
- "MYSQL_DATABASE=limesurvey"
|
||||||
- "MYSQL_PASSWORD=secret"
|
# - "MYSQL_PASSWORD="
|
||||||
- "MYSQL_ROOT_PASSWORD=secret"
|
# - "MYSQL_ROOT_PASSWORD="
|
||||||
volumes:
|
volumes:
|
||||||
lime:
|
lime:
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ services:
|
|||||||
- lime-db
|
- lime-db
|
||||||
environment:
|
environment:
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
lime-web:
|
lime-web:
|
||||||
image: docker.io/nginx
|
image: docker.io/nginx
|
||||||
links:
|
links:
|
||||||
@@ -30,7 +30,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "MYSQL_USER=limesurvey"
|
- "MYSQL_USER=limesurvey"
|
||||||
- "MYSQL_DATABASE=limesurvey"
|
- "MYSQL_DATABASE=limesurvey"
|
||||||
- "MYSQL_PASSWORD=secret"
|
# - "MYSQL_PASSWORD="
|
||||||
- "MYSQL_ROOT_PASSWORD=secret"
|
# - "MYSQL_ROOT_PASSWORD="
|
||||||
volumes:
|
volumes:
|
||||||
lime:
|
lime:
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ services:
|
|||||||
- "DB_TYPE=pgsql"
|
- "DB_TYPE=pgsql"
|
||||||
- "DB_PORT=5432"
|
- "DB_PORT=5432"
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
lime-db:
|
lime-db:
|
||||||
image: docker.io/postgres:10
|
image: docker.io/postgres:10
|
||||||
volumes:
|
volumes:
|
||||||
@@ -28,7 +28,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "POSTGRES_USER=limesurvey"
|
- "POSTGRES_USER=limesurvey"
|
||||||
- "POSTGRES_DB=limesurvey"
|
- "POSTGRES_DB=limesurvey"
|
||||||
- "POSTGRES_PASSWORD=secret"
|
# - "POSTGRES_PASSWORD="
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
db-data:
|
db-data:
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ services:
|
|||||||
- lime-db
|
- lime-db
|
||||||
environment:
|
environment:
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
- "PUBLIC_URL=http://my.survey.localhost:8888"
|
- "PUBLIC_URL=http://my.survey.localhost:8888"
|
||||||
- "BASE_URL=http://my.survey.localhost:8888"
|
- "BASE_URL=http://my.survey.localhost:8888"
|
||||||
traefik:
|
traefik:
|
||||||
@@ -37,6 +37,5 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "MYSQL_USER=limesurvey"
|
- "MYSQL_USER=limesurvey"
|
||||||
- "MYSQL_DATABASE=limesurvey"
|
- "MYSQL_DATABASE=limesurvey"
|
||||||
- "MYSQL_PASSWORD=secret"
|
# - "MYSQL_PASSWORD="
|
||||||
- "MYSQL_ROOT_PASSWORD=secret"
|
# - "MYSQL_ROOT_PASSWORD="
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ services:
|
|||||||
- "./examples/apache-example.conf:/etc/apache2/sites-available/000-default.conf:ro"
|
- "./examples/apache-example.conf:/etc/apache2/sites-available/000-default.conf:ro"
|
||||||
environment:
|
environment:
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
- "PUBLIC_URL=http://localhost:8888/limesurvey"
|
- "PUBLIC_URL=http://localhost:8888/limesurvey"
|
||||||
- "BASE_URL=http://localhost:8888/limesurvey"
|
- "BASE_URL=http://localhost:8888/limesurvey"
|
||||||
traefik:
|
traefik:
|
||||||
@@ -41,6 +41,5 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "MYSQL_USER=limesurvey"
|
- "MYSQL_USER=limesurvey"
|
||||||
- "MYSQL_DATABASE=limesurvey"
|
- "MYSQL_DATABASE=limesurvey"
|
||||||
- "MYSQL_PASSWORD=secret"
|
# - "MYSQL_PASSWORD="
|
||||||
- "MYSQL_ROOT_PASSWORD=secret"
|
# - "MYSQL_ROOT_PASSWORD="
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ services:
|
|||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
environment:
|
environment:
|
||||||
- "DB_HOST=lime-db"
|
- "DB_HOST=lime-db"
|
||||||
- "DB_PASSWORD=secret"
|
# - "DB_PASSWORD="
|
||||||
- "ADMIN_PASSWORD=foobar"
|
# - "ADMIN_PASSWORD="
|
||||||
# If you require an empty table prefix, use a space as the DB_TABLE_PREFIX
|
# If you require an empty table prefix, use a space as the DB_TABLE_PREFIX
|
||||||
# - "DB_TABLE_PREFIX= "
|
# - "DB_TABLE_PREFIX= "
|
||||||
lime-db:
|
lime-db:
|
||||||
@@ -24,5 +24,5 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- "MYSQL_USER=limesurvey"
|
- "MYSQL_USER=limesurvey"
|
||||||
- "MYSQL_DATABASE=limesurvey"
|
- "MYSQL_DATABASE=limesurvey"
|
||||||
- "MYSQL_PASSWORD=secret"
|
# - "MYSQL_PASSWORD="
|
||||||
- "MYSQL_ROOT_PASSWORD=secret"
|
# - "MYSQL_ROOT_PASSWORD="
|
||||||
|
|||||||
Reference in New Issue
Block a user