build(Makefile): work on serving
This commit is contained in:
parent
609db460f6
commit
6709d27732
41
Makefile
41
Makefile
@ -1,14 +1,12 @@
|
||||
CONTAINER_COMMAND ?= podman
|
||||
IN_CONTAINER ?= false
|
||||
IN_CI ?= false
|
||||
|
||||
SHELL=bash
|
||||
|
||||
export CONTAINER_COMMAND
|
||||
export IN_CONTAINER
|
||||
export IN_CI
|
||||
|
||||
db ?= -cf
|
||||
export CONTAINER_COMMAND ?= podman
|
||||
export IN_CONTAINER ?= false
|
||||
export IN_CI ?= false
|
||||
export WATCH
|
||||
export db ?= -cf
|
||||
export DEV_PORT_HTTP
|
||||
export DEV_PORT_HTTPS
|
||||
|
||||
###########################
|
||||
##### GENERAL TARGETS #####
|
||||
@ -44,7 +42,10 @@ release:
|
||||
##### UNIFIED FRONTEND/BACKEND TARGETS #####
|
||||
|
||||
.PHONY: serve
|
||||
serve: serve-frontend serve-backend
|
||||
serve:
|
||||
$(MAKE) serve-database &
|
||||
$(MAKE) serve-frontend &
|
||||
$(MAKE) serve-backend
|
||||
|
||||
.PHONY: compile
|
||||
compile: compile-frontend compile-backend
|
||||
@ -164,8 +165,14 @@ well-known/.well-known:
|
||||
--%-prod-backend: stackopts=--flag uniworx:-dev
|
||||
--%-prod-backend: --image-build --containerized-%-backend;
|
||||
|
||||
.PHONY: --serve-backend
|
||||
--serve-backend: .stack-work.lock
|
||||
.PHONY: serve-backend
|
||||
serve-backend:
|
||||
export DEV_PORT_HTTP=`netstat -tulan | perl -le 'use strict;use warnings;my %p=();my $addr=qr((?:\d+.\d+.\d+.\d+|[0-9a-f:]+));while(<>){ if(m#$addr:(\d+)\s+$addr:(?:\d+|\*)\s+#) { $p{$1}=1 }}; my $port = 3000; $port++ while $p{$port}; print $port'` ; \
|
||||
export DEV_PORT_HTTPS=`netstat -tulan | perl -le 'use strict;use warnings;my %p=();my $addr=qr((?:\d+.\d+.\d+.\d+|[0-9a-f:]+));while(<>){ if(m#$addr:(\d+)\s+$addr:(?:\d+|\*)\s+#) { $p{$1}=1 }}; my $port = 3443; $port++ while $p{$port}; print $port'` ; \
|
||||
echo "bisschen mehr: ${DEV_PORT_HTTP}" ; \
|
||||
$(MAKE) -- --containerized---serve-dev-backend DEV_PORT_HTTP=${DEV_PORT_HTTP} DEV_PORT_HTTPS=${DEV_PORT_HTTPS}
|
||||
.PHONY: --serve-dev-backend
|
||||
--serve-dev-backend:
|
||||
./start.sh
|
||||
|
||||
.PHONY: --compile-backend
|
||||
@ -187,6 +194,9 @@ database: .stack .stack-work.lock compile-backend-prod
|
||||
export AVSPASS=$${AVSPASS:-nopasswordset}
|
||||
stack exec uniworxdb -- $(db)
|
||||
|
||||
.PHONY: serve-database
|
||||
serve-database: --containerized-database
|
||||
|
||||
.PHONY: .stack
|
||||
.stack: stack.yaml stack.yaml.lock
|
||||
.stack:
|
||||
@ -204,6 +214,13 @@ database: .stack .stack-work.lock compile-backend-prod
|
||||
#############################
|
||||
##### CONTAINER TARGETS #####
|
||||
|
||||
.PHONY: --containerized-database
|
||||
--containerized-database: FRADRIVE_SERVICE=database
|
||||
--containerized-database: --image-build
|
||||
if [ "$(IN_CONTAINER)" == "false" ] ; then \
|
||||
$(CONTAINER_COMMAND) run fradrive/$(FRADRIVE_SERVICE) ; \
|
||||
fi
|
||||
|
||||
.PHONY: --containerized-%-frontend
|
||||
--containerized-%-frontend: FRADRIVE_SERVICE=frontend
|
||||
#--containerized-%-frontend: --image-build --image-run-%-frontend;
|
||||
|
||||
@ -19,9 +19,11 @@ RUN mkdir -p /.stack
|
||||
ENV STACK_ROOT=/.stack
|
||||
|
||||
RUN make .stack STACK_ROOT=${STACK_ROOT} IN_CONTAINER=true
|
||||
RUN stack build yesod-bin
|
||||
|
||||
ENV FRADRIVE_MAKE_TARGET=backend-build
|
||||
ENV FRADRIVE_MAKE_TARGET=serve-backend
|
||||
ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} STACK_ROOT=${STACK_ROOT} IN_CONTAINER=true
|
||||
|
||||
# export full develop port range
|
||||
EXPOSE TODO/tcp
|
||||
ENV DEV_PORT=3000
|
||||
EXPOSE ${DEV_PORT}/tcp
|
||||
1
docker/backend/dev_port.sh
Normal file
1
docker/backend/dev_port.sh
Normal file
@ -0,0 +1 @@
|
||||
netstat -tulan | perl -le 'use strict;use warnings;my %p=();my $addr=qr((?:\d+.\d+.\d+.\d+|[0-9a-f:]+));while(<>){ if(m#$addr:(\d+)\s+$addr:(?:\d+|*)\s+#) { $p{$1}=1 }}; my $port = 3000; $port++ while $p{$port}; print $port'
|
||||
@ -1,14 +1,19 @@
|
||||
FROM postgres:12
|
||||
FROM registry.uniworx.de/fradrive/fradrive/postgres:12
|
||||
|
||||
# Allow for connecting to database without password authentication
|
||||
ENV POSTGRES_HOST_AUTH_METHOD=trust
|
||||
|
||||
RUN cp /mnt/fradrive/docker/database/schema.sql /schema.sql && chown postgres:postgres /schema.sql
|
||||
RUN cp /mnt/fradrive/docker/database/initdb.sh /etc/fradrive-db && chmod 755 /etc/fradrive-db
|
||||
|
||||
USER postgres
|
||||
|
||||
# postgresql.conf and postgres_hba.conf resulted in error (Invalid data directory or sth); using -o/--options in initdb.sh instead
|
||||
# COPY --chown=postgres:postgres --chmod=644 ./postgresql.conf /etc/postgresql/12/main/postgresql.conf
|
||||
# COPY --chown=postgres:postgres --chmod=644 ./pg_hba.conf /etc/postgresql/12/main/pg_hba.conf
|
||||
COPY ./schema.sql /schema.sql
|
||||
COPY --chmod=755 ./initdb.sh /etc/fradrive-db
|
||||
# ADD ./schema.sql /schema.sql
|
||||
# ADD --chmod=755 ./initdb.sh /etc/fradrive-db
|
||||
|
||||
ENTRYPOINT /etc/fradrive-db
|
||||
ENTRYPOINT /etc/fradrive-db
|
||||
EXPOSE $DEV_PORT_HTTP/tcp
|
||||
EXPOSE $DEV_PORT_HTTPS/tcp
|
||||
26
start.sh
26
start.sh
@ -19,29 +19,29 @@ export COOKIES_SECURE=${COOKIES_SECURE:-false}
|
||||
export ALLOW_DEPRECATED=${ALLOW_DEPRECATED:-true}
|
||||
export ENCRYPT_ERRORS=${ENCRYPT_ERRORS:-false}
|
||||
export RIBBON=${RIBBON:-${__HOST:-localhost}}
|
||||
export APPROOT=${APPROOT:-http://localhost:$((${PORT_OFFSET:-0} + 3000))}
|
||||
export APPROOT=${APPROOT:-http://localhost:$DEV_PORT_HTTP}
|
||||
export AVSPASS=${AVSPASS:-nopasswordset}
|
||||
unset HOST
|
||||
|
||||
export PORT_OFFSET=$(((16#$(sha256sum <<<"$(hostname -f):''${basePath}" | head -c 16)) % 1000))
|
||||
# export PORT_OFFSET=$(((16#$(sha256sum <<<"$(hostname -f):''${basePath}" | head -c 16)) % 1000))
|
||||
|
||||
move-back() {
|
||||
mv -vT .stack-work .stack-work-run
|
||||
[[ -d .stack-work-build ]] && mv -vT .stack-work-build .stack-work
|
||||
}
|
||||
# move-back() {
|
||||
# mv -vT .stack-work .stack-work-run
|
||||
# [[ -d .stack-work-build ]] && mv -vT .stack-work-build .stack-work
|
||||
# }
|
||||
|
||||
if [[ -d .stack-work-run ]]; then
|
||||
[[ -d .stack-work ]] && mv -vT .stack-work .stack-work-build
|
||||
mv -vT .stack-work-run .stack-work
|
||||
trap move-back EXIT
|
||||
fi
|
||||
# if [[ -d .stack-work-run ]]; then
|
||||
# [[ -d .stack-work ]] && mv -vT .stack-work .stack-work-build
|
||||
# mv -vT .stack-work-run .stack-work
|
||||
# trap move-back EXIT
|
||||
# fi
|
||||
|
||||
if ! [ -z "$(which yesod)" ]
|
||||
then
|
||||
yesod devel -p $((${PORT_OFFSET:-0} + 3000)) -q $((${PORT_OFFSET:-0} + 3443)) $@
|
||||
yesod devel -p "$DEV_PORT_HTTP" -q "$DEV_PORT_HTTPS" $@
|
||||
elif ! [ -z "$(which stack)" ]
|
||||
then
|
||||
stack exec -- yesod devel -p $((${PORT_OFFSET:-0} + 3000)) -q $((${PORT_OFFSET:-0} + 3443)) $@
|
||||
stack exec -- yesod devel -p "$DEV_PORT_HTTP" -q "$DEV_PORT_HTTPS" $@ --copy-bins --local-bin-path $(pwd)/bin
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user