First upload of necessary files
Let's see what happens...
This commit is contained in:
1
.dockerignore
Normal file
1
.dockerignore
Normal file
@@ -0,0 +1 @@
|
||||
*/.git/*
|
||||
60
.gitlab-ci.yml
Normal file
60
.gitlab-ci.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
image: docker:latest
|
||||
|
||||
stages:
|
||||
- Build Base
|
||||
- Push Images
|
||||
|
||||
0-build-base:
|
||||
stage: Build Base
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- ./Artifacts/
|
||||
tags:
|
||||
- docker
|
||||
before_script:
|
||||
- mkdir ./Artifacts
|
||||
script:
|
||||
- docker build --pull --build-arg "RELEASE_VERSION=$RELEASE_VERSION" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
|
||||
- docker save --output "./Artifacts/$CI_COMMIT_SHORT_SHA.tar" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
|
||||
|
||||
1A-push-dev:
|
||||
stage: Push Images
|
||||
dependencies:
|
||||
- 0-build-base
|
||||
tags:
|
||||
- docker
|
||||
before_script:
|
||||
- docker load --input "./Artifacts/$CI_COMMIT_SHORT_SHA.tar"
|
||||
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
||||
script:
|
||||
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:dev-$RELEASE_VERSION-$CI_PIPELINE_ID"
|
||||
- docker push "$CI_REGISTRY_IMAGE:dev-$RELEASE_VERSION-$CI_PIPELINE_ID"
|
||||
|
||||
1B-push-version:
|
||||
stage: Push Images
|
||||
dependencies:
|
||||
- 0-build-base
|
||||
tags:
|
||||
- docker
|
||||
when: manual
|
||||
before_script:
|
||||
- docker load --input "./Artifacts/$CI_COMMIT_SHORT_SHA.tar"
|
||||
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
||||
script:
|
||||
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$RELEASE_VERSION"
|
||||
- docker push "$CI_REGISTRY_IMAGE:$RELEASE_VERSION"
|
||||
|
||||
1C-push-latest:
|
||||
stage: Push Images
|
||||
dependencies:
|
||||
- 0-build-base
|
||||
tags:
|
||||
- docker
|
||||
when: manual
|
||||
before_script:
|
||||
- docker load --input "./Artifacts/$CI_COMMIT_SHORT_SHA.tar"
|
||||
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin
|
||||
script:
|
||||
- docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest"
|
||||
- docker push "$CI_REGISTRY_IMAGE:latest"
|
||||
38
Dockerfile
Normal file
38
Dockerfile
Normal file
@@ -0,0 +1,38 @@
|
||||
FROM alpine:3.11
|
||||
LABEL maintainer="William Miceli <git@williammiceli.me>"
|
||||
USER root
|
||||
WORKDIR /
|
||||
|
||||
ARG RELEASE_VERSION
|
||||
|
||||
# So that OpenRC works properly
|
||||
VOLUME [ “/sys/fs/cgroup” ]
|
||||
|
||||
# Copying in startup script
|
||||
COPY /entrypoint.sh /
|
||||
|
||||
# Copying in nginx configuration
|
||||
COPY /etc/ /etc/
|
||||
|
||||
# Adding required packages
|
||||
RUN apk update && apk add --no-cache\
|
||||
nano \
|
||||
nginx \
|
||||
openrc \
|
||||
php7-fpm \
|
||||
php7-gd \
|
||||
&& rm /etc/nginx/conf.d/default.conf
|
||||
|
||||
# Adding DokuWiki
|
||||
RUN rm -rf /var/www/* \
|
||||
&& wget -O /var/www/DokuWiki.tar.gz https://github.com/splitbrain/dokuwiki/archive/release_stable_2018-04-22b.tar.gz \
|
||||
&& tar -xvzf /var/www/DokuWiki.tar.gz -C /var/www/ \
|
||||
&& rm /var/www/DokuWiki.tar.gz \
|
||||
&& DIRECTORY=$(ls /var/www) \
|
||||
&& mv /var/www/$DIRECTORY/* /var/www/ \
|
||||
&& rm -rf /var/www/$DIRECTORY \
|
||||
&& unset DIRECTORY
|
||||
|
||||
# Expose Insecure Web, MySQL Server
|
||||
EXPOSE 80
|
||||
CMD ["/bin/sh", "/entrypoint.sh"]
|
||||
@@ -1,3 +1,10 @@
|
||||
# DokuWiki on Docker
|
||||
|
||||
[GitHub Releases](https://github.com/splitbrain/dokuwiki/releases)
|
||||
[GitHub Releases](https://github.com/splitbrain/dokuwiki/releases)
|
||||
|
||||
This is a very vanilla image of DokuWiki following the official instructions as closely as I can pay attention...
|
||||
|
||||
|
||||
## Important Reminder
|
||||
|
||||
Make sure that once you've completed installing DokuWiki through your browser at `yourdomain.tld/install.php` that you uncomment out the `location ~ /(conf/|bin/|inc/|install.php) { deny all; }` line in the nginx config.
|
||||
7
entrypoint.sh
Normal file
7
entrypoint.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "[ INFO ] Starting PHP Service"
|
||||
rc-service php-fpm7 start
|
||||
|
||||
echo "[ INFO ] Starting nginx"
|
||||
nginx -g "daemon off;" # Foreground
|
||||
43
etc/nginx/conf.d/DokuWiki.conf
Normal file
43
etc/nginx/conf.d/DokuWiki.conf
Normal file
@@ -0,0 +1,43 @@
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name _;
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
root /var/www/;
|
||||
index doku.php;
|
||||
|
||||
client_max_body_size 64M;
|
||||
client_body_buffer_size 128k;
|
||||
|
||||
#Remember to comment the below out when you're installing, and uncomment it when done.
|
||||
#location ~ /(conf/|bin/|inc/|install.php) { deny all; }
|
||||
|
||||
#Support for X-Accel-Redirect
|
||||
location ~ ^/data/ { internal ; }
|
||||
|
||||
location ~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$ {
|
||||
expires 365d;
|
||||
}
|
||||
|
||||
location / { try_files $uri $uri/ @dokuwiki; }
|
||||
|
||||
location @dokuwiki {
|
||||
# rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page
|
||||
rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
|
||||
rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
|
||||
rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
|
||||
rewrite ^/(.*) /doku.php?id=$1&$args last;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
try_files $uri $uri/ /doku.php;
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param REDIRECT_STATUS 200;
|
||||
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
|
||||
# fastcgi_pass unix:/var/run/php5-fpm.sock; #old php version
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user