dream
51 строка · 1.8 Кб
1FROM python:3.9.16
2# ###################### IMMUTABLE SECTION ######################################
3# Do not change anything in this section
4WORKDIR /src
5
6COPY common/dialogflow_framework/requirements.txt .
7COPY common/dialogflow_framework/scripts /scripts
8
9RUN pip install -r requirements.txt && \
10bash /scripts/programy_logger_off.sh
11
12# ###################### CUSTOM SECTION ######################################
13# Here you can make changes
14
15ARG SERVICE_NAME
16ENV SERVICE_NAME ${SERVICE_NAME}
17
18COPY skills/${SERVICE_NAME}/requirements.txt .
19RUN pip install -r requirements.txt && \
20python -c "import nltk; nltk.download('punkt')"
21
22COPY skills/${SERVICE_NAME}/ ./
23COPY ./common/ ./common/
24
25ARG SERVICE_PORT
26ENV SERVICE_PORT ${SERVICE_PORT}
27
28COPY skills/${SERVICE_NAME}/data /data
29WORKDIR /data
30ENV BOOKREADS_DATA /data/bookreads_data.json
31ENV IMDB_MOVIE_GENRES /data/imdb_movie_genres.json
32ENV IGDB_GAME_GENRES /data/igdb_game_genres.json
33ENV IGDB_GAME_THEMES /data/igdb_game_themes.json
34ENV LINKTOS_BASED_ON_GAME_THEMES_AND_GENRES /data/linktos_based_on_game_themes_and_genres.json
35ENV LINKTOS_SPECIAL /data/linktos_special.json
36COPY skills/dff_book_skill/bookreads_data.json ${BOOKREADS_DATA}
37
38ENV MINECRAFT_HOW_TOS /data/minecraft_how_tos.json
39
40ENV GAMES_IGDB_SEARCH_RESULTS /data/games_igdb_search_results.json
41ARG GAMES_IGDB_SEARCH_RESULTS_URL
42RUN wget ${GAMES_IGDB_SEARCH_RESULTS_URL} -q -O ${GAMES_IGDB_SEARCH_RESULTS}
43ENV GAMES_IGDB_IDS /data/games_igdb_ids.json
44ARG GAMES_IGDB_IDS_URL
45RUN wget ${GAMES_IGDB_IDS_URL} -q -O ${GAMES_IGDB_IDS}
46
47# wait for a server answer ( INTERVAL + TIMEOUT ) * RETRIES seconds after that change stutus to unhealthy
48HEALTHCHECK --interval=5s --timeout=5s --retries=3 CMD curl --fail 127.0.0.1:${SERVICE_PORT}/healthcheck || exit 1
49
50WORKDIR /src
51CMD gunicorn --workers=1 server:app -b 0.0.0.0:${SERVICE_PORT}
52