Skip to content

Commit 12b49a3

Browse files
committed
Add deployment, move pyproject.tmol & poetry.lock into deployment
1 parent b63f8bf commit 12b49a3

5 files changed

Lines changed: 294 additions & 198 deletions

File tree

β€Ždeployment/Dockerfile.envβ€Ž

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
ARG UBUNTU_VERSION=24.04
2+
ARG PYTHON_VERSION=3
3+
ARG POETRY_VERSION=1.8.3
4+
ARG PYPROJECT=pyproject.toml
5+
ARG POETRYLOCK=poetry.lock
6+
ARG WORKDIR=.
7+
8+
FROM ubuntu:${UBUNTU_VERSION}
9+
10+
ARG PYTHON_VERSION
11+
ARG POETRY_VERSION
12+
ARG PYPROJECT
13+
ARG POETRYLOCK
14+
ARG WORKDIR
15+
16+
ENV PYTHON_VERSION=${PYTHON_VERSION}
17+
ENV DEBIAN_FRONTEND=noninteractive
18+
ENV PATH="/root/.local/bin:$PATH"
19+
20+
RUN apt-get update \
21+
&& apt-get install -y --no-install-recommends \
22+
python${PYTHON_VERSION} \
23+
python${PYTHON_VERSION}-venv \
24+
python${PYTHON_VERSION}-pip \
25+
python${PYTHON_VERSION}-dev \
26+
&& apt-get clean \
27+
&& rm -rf /var/lib/apt/lists/*
28+
29+
# Create a virtual environment
30+
RUN python${PYTHON_VERSION} -m venv /opt/venv
31+
ENV PATH="/opt/venv/bin:$PATH"
32+
33+
# Upgrade pip and install setuptools and wheel within the virtual environment
34+
RUN pip install --upgrade pip setuptools wheel
35+
36+
# Install Poetry
37+
RUN pip install poetry==${POETRY_VERSION}
38+
39+
WORKDIR $WORKDIR
40+
41+
# Copy just the pyproject.toml and poetry.lock files
42+
COPY ./deployment/${PYPROJECT} ./pyproject.toml
43+
COPY ./deployment/${POETRYLOCK} ./poetry.lock
44+
45+
# Configure Poetry to use the virtual environment
46+
RUN poetry config virtualenvs.create false
47+
RUN poetry config virtualenvs.path /opt/venv
48+
49+
# Install project dependencies
50+
RUN poetry lock
51+
RUN poetry install --no-interaction --no-ansi --no-root --with dev

β€Ždeployment/Dockerfile.ubuntuβ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
ARG UBUNTU_VERSION=24.04
2+
ARG PYTHON_VERSION=3
3+
4+
FROM ubuntu:${UBUNTU_VERSION} AS ubuntu_python
5+
6+
ARG PYTHON_VERSION
7+
ENV PYTHON_VERSION=${PYTHON_VERSION}
8+
9+
ENV DEBIAN_FRONTEND=noninteractive
10+
11+
RUN apt-get update \
12+
&& apt-get install -y --no-install-recommends \
13+
python${PYTHON_VERSION} \
14+
python${PYTHON_VERSION}-venv \
15+
python${PYTHON_VERSION}-pip \
16+
python${PYTHON_VERSION}-dev \
17+
&& apt-get clean \
18+
&& rm -rf /var/lib/apt/lists/*
19+

β€Ždeployment/doβ€Ž

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
#!/bin/bash
2+
#
3+
# Copyright (c) 2024 AOTU, Inc. All rights reserved. Contains Dilili Labs Proprietary Information. RESTRICTED COMPUTER SOFTWARE. LIMITED RIGHTS DATA.
4+
#
5+
6+
CMDLINE=$0
7+
CMD=$1
8+
ARG=$2
9+
ARGS="${@:2}"
10+
11+
DATE=$(date -u +"%Y-%m-%d-%H-%M-%S")
12+
13+
if [ -z $CMD ] || [ $CMD == '-h' ] || [ $CMD == '--help' ]; then
14+
echo " Copyright (c) 2024 AOTU, Inc. All rights reserved."
15+
cat $CMDLINE | grep echo | awk '(NR>2)' | awk '(NR<29)' | awk '{$1= ""; print $0}'
16+
fi
17+
18+
case $CMD in
19+
20+
help)
21+
;;
22+
23+
comments_only)
24+
echo β”Œβ”€β”€β”€β”€β”€β”€β”€ deploy brainframe-cli ──────────────────────────
25+
;;
26+
27+
ubuntu-2404-build)
28+
echo β”œ ./deployment/do ubuntu-2404-build # --no-cache
29+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=24.04 $ARGS --tag ubuntu-2404 .
30+
;;
31+
32+
ubuntu-2404-run)
33+
echo β”‚ ./deployment/do ubuntu-2404-run
34+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli/dist ubuntu-2404 bash
35+
;;
36+
37+
ubuntu-2204-build)
38+
echo β”œ ./deployment/do ubuntu-2204-build # --no-cache
39+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=22.04 $ARGS --tag ubuntu-2204 .
40+
;;
41+
42+
ubuntu-2204-run)
43+
echo β”‚ ./deployment/do ubuntu-2204-run
44+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli/dist ubuntu-2204 bash
45+
;;
46+
47+
ubuntu-2004-build)
48+
echo β”œ ./deployment/do ubuntu-2004-build # --no-cache
49+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=20.04 $ARGS --tag ubuntu-2004 .
50+
;;
51+
52+
ubuntu-2004-run)
53+
echo β”‚ ./deployment/do ubuntu-2004-run
54+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli/dist ubuntu-2004 bash
55+
;;
56+
57+
ubuntu-1804-build)
58+
echo β”œ ./deployment/do ubuntu-1804-build # --no-cache
59+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.ubuntu --build-arg UBUNTU_VERSION=18.04 $ARGS --tag ubuntu-1804 .
60+
;;
61+
62+
ubuntu-1804-run)
63+
echo β”‚ ./deployment/do ubuntu-1804-run
64+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli/dist ubuntu-1804 bash
65+
;;
66+
67+
comments_only)
68+
echo └────────────────────────────────────────────────────────
69+
echo β”Œβ”€β”€β”€β”€β”€β”€β”€ build brainframe-cli ───────────────────────────
70+
;;
71+
72+
brainframe-cli-2404-env-build)
73+
echo β”œ ./deployment/do brainframe-cli-2404-env-build # --no-cache
74+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env --build-arg WORKDIR=/deployment --build-arg UBUNTU_VERSION=24.04 --build-arg PYPROJECT=pyproject.toml --build-arg POETRYLOCK=poetry.lock $ARGS --tag brainframe-cli-env:2404 .
75+
;;
76+
77+
brainframe-cli-2404-env-run)
78+
echo β”‚ ./deployment/do brainframe-cli-2404-env-run
79+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2404 bash
80+
;;
81+
82+
brainframe-cli-2404-lint)
83+
echo β”‚ ./deployment/do brainframe-cli-2404-lint
84+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2404 bash -c "cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli/ && poetry run isort /brainframe-cli/"
85+
;;
86+
87+
brainframe-cli-2404-build)
88+
echo β”‚ ./deployment/do brainframe-cli-2404-build
89+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:2404 bash -c "cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
90+
;;
91+
92+
brainframe-cli-2204-env-build)
93+
echo β”œ ./deployment/do brainframe-cli-2204-env-build # --no-cache
94+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env --build-arg WORKDIR=/deployment --build-arg UBUNTU_VERSION=22.04 --build-arg PYPROJECT=pyproject.toml --build-arg POETRYLOCK=poetry.lock $ARGS --tag brainframe-cli-env:2204 .
95+
;;
96+
97+
brainframe-cli-2204-env-run)
98+
echo β”‚ ./deployment/do brainframe-cli-2204-env-run
99+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2204 bash
100+
;;
101+
102+
brainframe-cli-2204-lint)
103+
echo β”‚ ./deployment/do brainframe-cli-2204-lint
104+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2204 bash -c "cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli/ && poetry run isort /brainframe-cli/"
105+
;;
106+
107+
brainframe-cli-2204-build)
108+
echo β”‚ ./deployment/do brainframe-cli-2204-build
109+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:2204 bash -c "cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
110+
;;
111+
112+
brainframe-cli-2004-env-build)
113+
echo β”œ ./deployment/do brainframe-cli-2004-env-build # --no-cache
114+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env --build-arg WORKDIR=/deployment --build-arg UBUNTU_VERSION=20.04 --build-arg PYPROJECT=pyproject.toml --build-arg POETRYLOCK=poetry.lock $ARGS --tag brainframe-cli-env:2004 .
115+
;;
116+
117+
brainframe-cli-2004-env-run)
118+
echo β”‚ ./deployment/do brainframe-cli-2004-env-run
119+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2004 bash
120+
;;
121+
122+
brainframe-cli-2004-lint)
123+
echo β”‚ ./deployment/do brainframe-cli-2004-lint
124+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:2004 bash -c "cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli && poetry run isort /brainframe-cli"
125+
;;
126+
127+
brainframe-cli-2004-build)
128+
echo β”‚ ./deployment/do brainframe-cli-2004-build
129+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:2004 bash -c "cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
130+
;;
131+
132+
brainframe-cli-1804-env-build)
133+
echo β”œ ./deployment/do brainframe-cli-1804-env-build # --no-cache
134+
DOCKER_BUILDKIT=1 docker build --file deployment/Dockerfile.env --build-arg WORKDIR=/deployment --build-arg UBUNTU_VERSION=18.04 --build-arg PYPROJECT=pyproject.toml --build-arg POETRYLOCK=poetry.lock --build-arg POETRY_VERSION=1.1.14 $ARGS --tag brainframe-cli-env:1804 .
135+
;;
136+
137+
brainframe-cli-1804-env-run)
138+
echo β”‚ ./deployment/do brainframe-cli-1804-env-run
139+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:1804 bash
140+
;;
141+
142+
brainframe-cli-1804-lint)
143+
echo β”‚ ./deployment/do brainframe-cli-1804-lint
144+
docker run -it --rm -v ./:/brainframe-cli -w /deployment brainframe-cli-env:1804 bash -c "cp /deployment/* /brainframe-cli/ && poetry run black /brainframe-cli && poetry run isort /brainframe-cli"
145+
;;
146+
147+
brainframe-cli-1804-build)
148+
echo β”‚ ./deployment/do brainframe-cli-1804-build
149+
docker run -it --rm -v ./:/brainframe-cli -w /brainframe-cli brainframe-cli-env:1804 bash -c "cp /deployment/* /brainframe-cli/ && poetry lock --no-update && poetry build -f wheel"
150+
;;
151+
152+
comments_only)
153+
echo └────────────────────────────────────────────────────────
154+
;;
155+
156+
esac
157+
158+
nice_day_var=$((1 + $RANDOM % 10))
159+
160+
if [ $(($nice_day_var%2)) -eq 0 ]; then
161+
echo
162+
echo Have a nice day!
163+
else
164+
echo
165+
echo You are the best!
166+
fi

0 commit comments

Comments
Β (0)