Commit 78aeb7d4 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Merge branch 'dockerize' of https://github.com/feuerrot/travelynx into feuerrot-dockerize

parents 4696f8d6 2b578049
Loading
Loading
Loading
Loading

.dockerignore

0 → 100644
+5 −0
Original line number Diff line number Diff line
Dockerfile
.dockerignore
.gitignore
README.md
travelynx.conf
+61 −0
Original line number Diff line number Diff line
/travelynx.conf

# Created by https://www.gitignore.io/api/vim,perl
# Edit at https://www.gitignore.io/?templates=vim,perl

### Perl ###
!Build/
.last_cover_stats
/META.yml
/META.json
/MYMETA.*
*.o
*.pm.tdy
*.bs

# Devel::Cover
cover_db/

# Devel::NYTProf
nytprof.out

# Dizt::Zilla
/.build/

# Module::Build
_build/
Build
Build.bat

# Module::Install
inc/

# ExtUtils::MakeMaker
/blib/
/_eumm/
/*.gz
/Makefile
/Makefile.old
/MANIFEST.bak
/pm_to_blib
/*.zip

### Vim ###
# Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]

# Session
Session.vim

# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~

# End of https://www.gitignore.io/api/vim,perl

Dockerfile

0 → 100644
+23 −0
Original line number Diff line number Diff line
FROM debian:stretch-slim

ARG DEBIAN_FRONTEND=noninteractive

COPY cpanfile /app/cpanfile
WORKDIR /app

RUN apt-get update && apt-get install --no-install-recommends -y \
	cpanminus \
	build-essential \
	libpq-dev \
	git \
	cron \
	&& cpanm -in --no-man-pages --installdeps . \
	&& rm -rf ~/.cpanm \
	&& apt-get purge -y \
	build-essential \
	cpanminus \
	&& apt-get autoremove -y

COPY . /app

CMD ["/app/docker-run.sh"]

docker-compose.yml

0 → 100644
+40 −0
Original line number Diff line number Diff line
version: "3.6"
x-common-env: &common-env
  TRAVELYNX_DB_HOST: database
  TRAVELYNX_DB_NAME: travelynx
  TRAVELYNX_DB_USERNAME: travelynx
  TRAVELYNX_DB_PASSWORD: travelynx
  TRAVELYNX_SECRET: 12345678
  TRAVELYNX_MAIL_DISABLE: 1
  MOJO_MODE: development

x-common-config: &common-config
  volumes:
    - ./examples/docker/travelynx.conf:/app/travelynx.conf
  build: .
  networks:
    - backend
  
services:
  database:
    image: postgres:11
    networks:
      - backend
    environment: 
      <<: *common-env
    volumes:
      - ./examples/docker/postgres-init.sh:/docker-entrypoint-initdb.d/init.sh
  travelynx:
    <<: *common-config
    ports:
      - "8000:8093"
    environment:
      <<: *common-env
  cron:
    <<: *common-config
    environment:
      <<: *common-env
      CRON: 1

networks:
  backend:
 No newline at end of file

docker-run.sh

0 → 100755
+58 −0
Original line number Diff line number Diff line
#!/bin/bash
set -eu

WAIT_DB_HOST=${TRAVELYNX_DB_HOST}
WAIT_DB_PORT=5432

check_config() {
	if [ ! -f travelynx.conf ]
	then
		echo "The configuration file is missing"
		exit 1
	fi	
}

wait_for_db() {
	set +e
	for i in $(seq 1 ${WAIT_DB_TIMEOUT:-5})
	do
		(echo >/dev/tcp/${WAIT_DB_HOST}/${WAIT_DB_PORT}) &>/dev/null
		if [ $? -eq 0 ]; then
		    break
		else
			echo "Can't reach DB @ ${WAIT_DB_HOST}:${WAIT_DB_PORT}"
		fi
		sleep 1
	done
	set -e
}

run_app() {
	if [ \
		"${TRAVELYNX_MAIL_DISABLE:-0}" -eq 0 \
		-a "${TRAVELYNX_MAIL_HOST:-unset}" != "unset" \
	]
	then
		export EMAIL_SENDER_TRANSPORT=SMTP
		export EMAIL_SENDER_TRANSPORT_HOST=${TRAVELYNX_MAIL_HOST}
		export EMAIL_SENDER_TRANSPORT_PORT=${TRAVELYNX_MAIL_PORT:-25}
	fi

	perl index.pl database migrate

	exec /usr/local/bin/hypnotoad -f index.pl
}

run_cron() {
	exec perl index.pl worker
}

check_config
wait_for_db

if [ "${CRON:-0}" -ne "0" ]
then
	run_cron
fi

run_app
 No newline at end of file
Loading