Initial
This commit is contained in:
9
.docker/run.sh
Executable file
9
.docker/run.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "Hello world!"
|
||||
|
||||
echo "Press [CTRL+C] to stop.."
|
||||
while :
|
||||
do
|
||||
sleep 1
|
||||
done
|
||||
32
Dockerfile
Normal file
32
Dockerfile
Normal file
@ -0,0 +1,32 @@
|
||||
FROM python:3.10.11-alpine3.17
|
||||
|
||||
ARG INTERNAL_API_PORT
|
||||
ARG INTERNAL_WS_PORT
|
||||
|
||||
RUN \
|
||||
pip install pip -U && \
|
||||
pip install poetry --no-cache-dir
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY pyproject.toml .
|
||||
COPY poetry.lock .
|
||||
|
||||
# create virtual environment
|
||||
RUN python -m venv /venv
|
||||
# set python thingies and activate virtual environment
|
||||
ENV \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
PATH="/venv/bin:$PATH"
|
||||
|
||||
RUN \
|
||||
# dump python dependencies into requirements file
|
||||
poetry export --without-hashes --format=requirements.txt > requirements.txt && \
|
||||
# install python libs
|
||||
pip install -r requirements.txt --no-cache-dir --prefer-binary
|
||||
|
||||
COPY ./.docker/run.sh .
|
||||
COPY ./hopper ./service
|
||||
|
||||
ENTRYPOINT [ "/app/run.sh" ]
|
||||
35
Makefile
35
Makefile
@ -1,3 +1,11 @@
|
||||
IMAGE_NAME=fairhopper-service
|
||||
CONTAINER_NAME=fairhopper-service
|
||||
INTERNAL_API_PORT=8010
|
||||
INTERNAL_WS_PORT=8011
|
||||
EXTERNAL_API_PORT=8010
|
||||
EXTERNAL_WS_PORT=8011
|
||||
|
||||
|
||||
run:
|
||||
@poetry run \
|
||||
uvicorn \
|
||||
@ -20,3 +28,30 @@ create-requirements:
|
||||
--without-hashes \
|
||||
--format=requirements.txt \
|
||||
> requirements.txt
|
||||
|
||||
docker-clean:
|
||||
@echo "> Removing container $(CONTAINER_NAME)"
|
||||
- @docker rm $(CONTAINER_NAME)
|
||||
@echo "> Removing image $(CONTAINER_NAME)"
|
||||
- @docker image rm $(CONTAINER_NAME)
|
||||
|
||||
|
||||
docker-build:
|
||||
@docker \
|
||||
build . \
|
||||
--build-arg INTERNAL_API_PORT=$(INTERNAL_API_PORT) \
|
||||
--build-arg INTERNAL_WS_PORT=$(INTERNAL_WS_PORT) \
|
||||
-t $(CONTAINER_NAME)
|
||||
|
||||
docker-run:
|
||||
@docker \
|
||||
run \
|
||||
--publish $(EXTERNAL_API_PORT):$(INTERNAL_API_PORT) \
|
||||
--publish $(EXTERNAL_WS_PORT):$(INTERNAL_WS_PORT) \
|
||||
--name=$(CONTAINER_NAME) \
|
||||
$(IMAGE_NAME) \
|
||||
--detach
|
||||
|
||||
docker-clean-build:
|
||||
make clean
|
||||
make build
|
||||
|
||||
Reference in New Issue
Block a user