make
This commit is contained in:
parent
98f51e5210
commit
6896fce3e8
7 changed files with 40 additions and 9 deletions
|
|
@ -6,3 +6,4 @@
|
|||
*.md
|
||||
*.pyc
|
||||
__pycache__/
|
||||
.env
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
PROVIDER_URL=http://localhost:8000/v1
|
||||
PROVIDER_API_KEY=your-api-key
|
||||
PROVIDER_MODEL=gpt-4
|
||||
AGENT_API_PATH=../agent_api
|
||||
|
|
|
|||
7
.mk/inside.mk
Normal file
7
.mk/inside.mk
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
.PHONY: uvicorn-dev uvicorn-prod
|
||||
|
||||
uvicorn-dev:
|
||||
uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload
|
||||
|
||||
uvicorn-prod:
|
||||
uvicorn src.main:app --host 0.0.0.0 --port 8000
|
||||
7
.mk/outside.mk
Normal file
7
.mk/outside.mk
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
.PHONY: up-dev up-prod
|
||||
|
||||
up-dev:
|
||||
docker compose --profile dev up $(ARGS)
|
||||
|
||||
up-prod:
|
||||
docker compose --profile prod up $(ARGS)
|
||||
14
Dockerfile
14
Dockerfile
|
|
@ -4,10 +4,11 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
|
|||
PYTHONUNBUFFERED=1
|
||||
|
||||
WORKDIR /app
|
||||
RUN apt update && apt install make -y
|
||||
|
||||
FROM base as builder
|
||||
|
||||
RUN apt update && apt install git -y
|
||||
RUN apt install git -y
|
||||
RUN pip install uv
|
||||
|
||||
COPY pyproject.toml uv.lock ./
|
||||
|
|
@ -22,12 +23,14 @@ COPY --from=builder /app/.venv /app/.venv
|
|||
ENV PATH="/app/.venv/bin:$PATH"
|
||||
|
||||
COPY src/ /app/src/
|
||||
COPY Makefile ./
|
||||
COPY .mk/ ./.mk/
|
||||
|
||||
USER appuser
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
CMD ["make", "uvicorn-prod"]
|
||||
|
||||
FROM base as development
|
||||
|
||||
|
|
@ -37,10 +40,13 @@ COPY pyproject.toml uv.lock ./
|
|||
RUN uv sync --frozen --no-install-project
|
||||
|
||||
COPY --from=agent_api . /agent_api/
|
||||
RUN uv pip install -e /agent_api/
|
||||
RUN uv pip install -e /agent_api/
|
||||
|
||||
ENV PATH="/app/.venv/bin:$PATH"
|
||||
|
||||
COPY Makefile ./
|
||||
COPY .mk/ ./.mk/
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
|
||||
CMD ["make", "uvicorn-dev"]
|
||||
|
|
|
|||
13
Makefile
Normal file
13
Makefile
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
.DEFAULT_GOAL := help
|
||||
|
||||
-include .mk/outside.mk
|
||||
-include .mk/inside.mk
|
||||
|
||||
help:
|
||||
@echo "Outside commands:"
|
||||
@echo " make up-dev - build and run dev container"
|
||||
@echo " make up-prod - build and run prod container"
|
||||
@echo ""
|
||||
@echo "Inside container:"
|
||||
@echo " make uvicorn-dev - run with hot reload"
|
||||
@echo " make uvicorn-prod - run production"
|
||||
|
|
@ -1,15 +1,13 @@
|
|||
services:
|
||||
agent:
|
||||
build:
|
||||
context: .
|
||||
target: production
|
||||
image: mrkan0/lambda-agent:latest
|
||||
ports:
|
||||
- "8000:8000"
|
||||
env_file:
|
||||
- .env
|
||||
restart: unless-stopped
|
||||
profiles:
|
||||
- production
|
||||
- prod
|
||||
|
||||
agent-dev:
|
||||
build:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue