Sign inSign up

woahbase/alpine-lychee

By woahbase

•Updated over 5 years ago

Small image gallery service built on Alpine + NGINX + PHP7

Image
3

10K+

woahbase/alpine-lychee repository overview

build status commit version:x86_64 size:x86_64 version:armhf size:armhf

⁠Alpine-Lychee⁠

⁠Container for Alpine Linux + PHP7 + Lychee

This image⁠ containerizes Lychee⁠ Image Gallery along with its php dependencies to setup a pesonal image repository. Database and images not included. Checkout alpine-mysql⁠ to configure your own MySQL server in a container

Based on Alpine Linux⁠ from my alpine-php⁠ image with NGINX⁠, PHP7⁠ and the s6⁠ init system overlayed⁠ in it.

Auto updated according to the Github⁠ release

Updated with latest php7 packages and proxied out through NGINX, which can be also used to serve the static files.

The image is tagged respectively for the following architectures,

  • armhf
  • x86_64 ( retagged as the latest )

armhf builds have embedded binfmt_misc support and contain the qemu-user-static⁠ binary that allows for running it also inside an x64 environment that has it.


⁠Get the Image

Pull the image for your architecture it's already available from Docker Hub.

# make pull
docker pull woahbase/alpine-lychee:x86_64

⁠Configuration Defaults

  • Lychee is located at the endpoint /lychee/, with configurations at /config/lychee/ and data at /config/lychee/data/. Uploaded images go to /config/www/lychee/uploads.

  • Lychee source is located at /opt/lychee/lychee.zip.

  • These configurations are inherited from the nginx image:

    • Drop privileges to alpine whenever configured to. Respects PUID / PGID.

    • Binds to both http(80) and https(443). Publish whichever you need, or both.

    • Default configs setup a static site at / by copying /defaults/index.html at the webroot location /config/www/. Mount the /config/ locally to persist modifications (or your webapps). NGINX configs are at /config/nginx, and vhosts at /config/nginx/site-confs/.

    • 4096bit Self-signed SSL certificate is generated in first run at /config/keys. Pass the runtime variable SSLSUBJECT with a valid info string to make your own.

    • .htpasswd is generated with default credentials admin/insecurebydefault at /config/keys/.htpasswd

    • Sets up a https and auth protected web location at /secure.

    • If you're proxying multiple containers at the same host, or reverse proxying multiple hosts at the same container, you may need to add --net=host and/or add entries in your firewall to allow traffic.


⁠Run

If you want to run images for other architectures, you will need to have binfmt support configured for your machine. multiarch⁠, has made it easy for us containing that into a docker container.

# make regbinfmt
docker run --rm --privileged multiarch/qemu-user-static:register --reset

Without the above, you can still run the image that is made for your architecture, e.g for an x86_64 machine..

Running make starts the service.

# make
docker run --rm -it \
  --name docker_lychee --hostname lychee \
  -e PGID=1000 -e PUID=1000 \
  -c 256 -m 256m \
  -p 80:80 -p 443:443 \
  -v config:/config \
  -v images:/config/www/lychee/uploads \
  -v /etc/hosts:/etc/hosts:ro \
  -v /etc/localtime:/etc/localtime:ro \
  woahbase/alpine-lychee:x86_64

Stop the container with a timeout, (defaults to 2 seconds)

# make stop
docker stop -t 2 docker_lychee

Removes the container, (always better to stop it first and -f only when needed most)

# make rm
docker rm -f docker_lychee

Restart the container with

# make restart
docker restart docker_lychee

⁠Shell access

Get a shell inside a already running container,

# make shell
docker exec -it docker_lychee /bin/bash

set user or login as root,

# make rshell
docker exec -u root -it docker_lychee /bin/bash

To check logs of a running container in real time

# make logs
docker logs -f docker_lychee

⁠Development

If you have the repository access, you can clone and build the image yourself for your own system, and can push after.


⁠Setup

Before you clone the repo⁠, you must have Git⁠, GNU make⁠, and Docker⁠ setup on the machine.

git clone https://github.com/woahbase/alpine-lychee
cd alpine-lychee

You can always skip installing make but you will have to type the whole docker commands then instead of using the sweet make targets.


⁠Build

You need to have binfmt_misc configured in your system to be able to build images for other architectures.

Otherwise to locally build the image for your system. [ARCH defaults to x86_64, need to be explicit when building for other architectures.]

# make ARCH=x86_64 build
# sets up binfmt if not x86_64
docker build --rm --compress --force-rm \
  --no-cache=true --pull \
  -f ./Dockerfile_x86_64 \
  --build-arg ARCH=x86_64 \
  --build-arg DOCKERSRC=alpine-php \
  --build-arg PGID=1000 \
  --build-arg PUID=1000 \
  --build-arg USERNAME=woahbase \
  -t woahbase/alpine-lychee:x86_64 \
  .

To check if its working..

# make ARCH=x86_64 test
docker run --rm -it \
  --name docker_lychee --hostname lychee \
  -e PGID=1000 -e PUID=1000 \
  woahbase/alpine-lychee:x86_64 \
  sh -ec 'nginx -v; php --version; echo "$(cat /opt/lychee/version)";'

And finally, if you have push access,

# make ARCH=x86_64 push
docker push woahbase/alpine-lychee:x86_64

⁠Maintenance

Sources at Github⁠. Built at Travis-CI.org⁠ (armhf / x64 builds). Images at Docker hub⁠. Metadata at Microbadger⁠.

Maintained by WOAHBase⁠.

Tag summary

Content type

Image

Digest

Size

19.9 MB

Last updated

over 5 years ago

docker pull woahbase/alpine-lychee