Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 21b5e2d19b | |||
| 4de30316aa | |||
| a60be883e9 | |||
| 72bf20f29f | |||
| 933be62950 | |||
| b186acf8ff | |||
| 01bbe56547 | |||
| 67de3d1ecc | |||
| df16f5af7e | |||
| b98fdd49f4 | |||
| c095ddd323 | |||
| 6d139045cf | |||
| b31d7c913e | |||
| d346e0912e | |||
| 8bbb02e228 | |||
| bed0d8e598 | |||
| 82e59c9091 | |||
| 2b420fa628 | |||
| 9cbebe220d | |||
| ef57949ed1 | |||
| b0f191cbd3 | |||
| f84c37d808 | |||
| da004da054 | |||
| 7f9f2ca6ab | |||
| d429b2ca59 | |||
| 8c69d7f200 | |||
| 6629d6cf75 | |||
| 1b1f0ed951 |
+41
-18
@@ -3,28 +3,51 @@
|
||||
# Based on ubuntu
|
||||
################################################################################
|
||||
|
||||
FROM ubuntu:14.04
|
||||
FROM debian:9
|
||||
|
||||
MAINTAINER Lloyd Watkin <lloyd@evilprofessor.co.uk>
|
||||
MAINTAINER Prosody Developers <developers@prosody.im>
|
||||
|
||||
RUN mkdir /data
|
||||
WORKDIR /data
|
||||
# Some dependencies in stretch are not suitable for Prosody 0.11.x, so add our repo
|
||||
RUN echo "deb http://packages.prosody.im/debian stretch main" > /etc/apt/sources.list.d/prosody.list
|
||||
ADD prosody_packages.gpg /etc/apt/trusted.gpg.d/prosody.gpg
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get upgrade -y
|
||||
RUN apt-get install -y openssl lua5.1 lua-expat lua-socket lua-filesystem \
|
||||
libidn11 lua-event lua-zlib lua-dbi-mysql lua-dbi-postgresql \
|
||||
lua-dbi-sqlite3 libssl1.0.0 lua-sec lua-zlib liblua5.1-expat0
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||
lsb-base \
|
||||
adduser \
|
||||
libidn11 \
|
||||
libssl1.1 \
|
||||
lua-bitop \
|
||||
lua-dbi-mysql \
|
||||
lua-dbi-postgresql \
|
||||
lua-dbi-sqlite3 \
|
||||
lua-event \
|
||||
lua-expat \
|
||||
lua-filesystem \
|
||||
lua-sec \
|
||||
lua-socket \
|
||||
lua-zlib \
|
||||
lua5.1 \
|
||||
lua5.2 \
|
||||
openssl \
|
||||
ca-certificates \
|
||||
ssl-cert \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY ./prosody.deb /data/prosody.deb
|
||||
COPY ./start.sh /data/start.sh
|
||||
# Install and configure prosody
|
||||
COPY ./prosody.deb /tmp/prosody.deb
|
||||
RUN dpkg -i /tmp/prosody.deb \
|
||||
&& sed -i '1s/^/daemonize = false;\n/' /etc/prosody/prosody.cfg.lua \
|
||||
&& perl -i -pe 'BEGIN{undef $/;} s/^log = {.*?^}$/log = {\n {levels = {min = "info"}, to = "console"};\n}/smg' /etc/prosody/prosody.cfg.lua
|
||||
|
||||
RUN chmod 700 /data/start.sh
|
||||
RUN dpkg -i /data/prosody.deb
|
||||
RUN mkdir -p /var/run/prosody && chown prosody:prosody /var/run/prosody
|
||||
|
||||
# If using default configuration keep a process alive
|
||||
RUN echo 'daemonize = false;' | cat - /etc/prosody/prosody.cfg.lua > temp && mv temp /etc/prosody/prosody.cfg.lua
|
||||
COPY ./entrypoint.sh /entrypoint.sh
|
||||
RUN chmod 755 /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
EXPOSE 443 80 5222 5269 5347 5280 5281
|
||||
|
||||
ENTRYPOINT /data/start.sh
|
||||
EXPOSE 80 443 5222 5269 5347 5280 5281
|
||||
USER prosody
|
||||
ENV __FLUSH_LOG yes
|
||||
CMD ["prosody"]
|
||||
|
||||
@@ -1,23 +1,31 @@
|
||||
# Prosody Docker
|
||||
# Docker build scripts for Prosody build server
|
||||
|
||||
This is the Prosody Docker image building repository. Its only really designed to be used on the Prosody build server for pushing to the [Docker registry](https://registry.hub.docker.com).
|
||||
This is the Prosody Docker image building repository. It is used by our build server to build and publish Docker images for stable releases and nightly builds.
|
||||
|
||||
For images please see here: [Prosody on Docker](https://registry.hub.docker.com/u/prosody/prosody/).
|
||||
**Note:** Using this Dockerfile outside of our build server is not a supported use-case. There are many
|
||||
alternative Dockerfiles for Prosody available which can be used for this:
|
||||
|
||||
It works by coping in a recently built `deb` file and running the install on the system.
|
||||
- [OpusVL/prosody-docker](https://github.com/OpusVL/prosody-docker/)
|
||||
- [unclev/prosody-docker-extended](https://github.com/unclev/prosody-docker-extended)
|
||||
|
||||
## Running
|
||||
## Published images
|
||||
|
||||
Docker images are built off an __Ubuntu 14.04 LTS__ base.
|
||||
For images please see here: [Prosody on Docker](https://hub.docker.com/r/prosody/prosody/).
|
||||
|
||||
## Running
|
||||
|
||||
It works by copying in a recently built `deb` file and running the install on the system.
|
||||
|
||||
Docker images are built off an __Debian 9 (stretch)__ base.
|
||||
|
||||
```bash
|
||||
docker run -d prosody/prosody --name prosody -p 5222:5222
|
||||
docker run -d --name prosody -p 5222:5222 prosody/prosody
|
||||
```
|
||||
|
||||
On startup the image will create a default user of `admin@localhost` with password `password`. This can be changed by using environment variables `LOCAL`, `DOMAIN`, and `PASSWORD`. This performs the following action on startup:
|
||||
A user can be created by using environment variables `LOCAL`, `DOMAIN`, and `PASSWORD`. This performs the following action on startup:
|
||||
|
||||
prosodyctl register *local* *domain* *password*
|
||||
|
||||
|
||||
Any error from this script is ignored. Prosody will not check the user exists before running the command (i.e. existing users will be overwritten). It is expected that [mod_admin_adhoc](http://prosody.im/doc/modules/mod_admin_adhoc) will then be in place for managing users (and the server).
|
||||
|
||||
### Ports
|
||||
@@ -43,6 +51,7 @@ Volumes can be mounted at the following locations for adding in files:
|
||||
* __/var/log/prosody__:
|
||||
* Log files for prosody - if not mounted these will be stored on the system
|
||||
* Note: This location can be changed in the configuration, update to match
|
||||
* Also note: The log directory on the host (/logs/prosody in the example below) must be writeable by the prosody user
|
||||
* __/usr/lib/prosody-modules__ (suggested):
|
||||
* Location for including additional modules
|
||||
* Note: This needs to be included in your config file, see http://prosody.im/doc/installing_modules#paths
|
||||
@@ -50,16 +59,17 @@ Volumes can be mounted at the following locations for adding in files:
|
||||
### Example
|
||||
|
||||
```
|
||||
docker run -d prosody/prosody:0.9 \
|
||||
docker run -d \
|
||||
-p 5222:5222 \
|
||||
-p 5269:5269 \
|
||||
-p localhost:5347:5347 \
|
||||
-e LOCAL=romeo \
|
||||
-e DOMAIN=shakespeare.lit \
|
||||
-e PASSWORD=juliet4ever \
|
||||
-v /etc/prosody /data/prosody/configuration \
|
||||
-v /var/log/prosody /logs/prosody \
|
||||
-v /usr/lib/prosody-modules /data/prosody/modules
|
||||
-v /data/prosody/configuration:/etc/prosody \
|
||||
-v /logs/prosody:/var/log/prosody \
|
||||
-v /data/prosody/modules:/usr/lib/prosody-modules \
|
||||
prosody/prosody:0.9
|
||||
```
|
||||
|
||||
## Building
|
||||
@@ -70,7 +80,7 @@ Use the `build-docker.sh` script as follows:
|
||||
./build-docker.sh /path/to/built-image.deb version_tag [, ...version_tag2, ...]
|
||||
```
|
||||
|
||||
Where argument 1 is a pointer to the build `deb` file that you'd like to make an image from and 'version_tag' is the tag you'd like to push to the Docker registry with.
|
||||
Where argument 1 is a pointer to the build `deb` file that you'd like to make an image from and 'version_tag' is the tag you'd like to push to the Docker registry with.
|
||||
|
||||
You can specify multiple tags by adding additional tag names to the end of the command. This is useful where a for example release 0.10.4 is made which also consitutes 'latest', '0.10-nightly', '0.10.4', '0.10' images.
|
||||
|
||||
|
||||
+6
-6
@@ -1,4 +1,4 @@
|
||||
# /bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Usage: ./build-docker.sh def_file_name version_number"
|
||||
@@ -11,18 +11,18 @@ if [[ -z "$2" ]]; then
|
||||
fi
|
||||
|
||||
echo "Starting build..."
|
||||
cp $1 ./prosody.deb
|
||||
docker build -t prosody/prosody:$2 .
|
||||
cp "$1" ./prosody.deb
|
||||
docker build -t prosody/prosody:"$2" .
|
||||
for i in "${@:3}"; do
|
||||
echo "Also building tag $i"
|
||||
docker build -t prosody/prosody:$i .
|
||||
docker build -t prosody/prosody:"$i" .
|
||||
done
|
||||
docker push prosody/prosody
|
||||
|
||||
echo "Cleaning up..."
|
||||
docker rmi prosody/prosody:$2
|
||||
docker rmi prosody/prosody:"$2"
|
||||
for i in "${@:3}"; do
|
||||
echo "Also cleaning tag $i"
|
||||
docker rmi prosody/prosody:$i
|
||||
docker rmi prosody/prosody:"$i"
|
||||
done
|
||||
rm ./prosody.deb
|
||||
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [[ "$1" != "prosody" ]]; then
|
||||
exec prosodyctl $*
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
if [ "$LOCAL" -a "$PASSWORD" -a "$DOMAIN" ] ; then
|
||||
prosodyctl register $LOCAL $DOMAIN $PASSWORD
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
Binary file not shown.
Reference in New Issue
Block a user