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:
|
run:
|
||||||
@poetry run \
|
@poetry run \
|
||||||
uvicorn \
|
uvicorn \
|
||||||
@ -20,3 +28,30 @@ create-requirements:
|
|||||||
--without-hashes \
|
--without-hashes \
|
||||||
--format=requirements.txt \
|
--format=requirements.txt \
|
||||||
> 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