forked from mayooear/ai-pdf-chatbot-langchain
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathDockerfile
172 lines (116 loc) · 5.08 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
FROM node:18
# Create and change to the app directory.
WORKDIR /usr/src/app
# Copy package.json, pnpm-lock.yaml (if you have one), and other necessary files for installation
COPY package*.json pnpm-lock.yaml ./
# Install production dependencies.
RUN npm install -g pnpm
RUN pnpm install --prod
RUN pnpm install --save-dev eslint
# Copy local code to the container image.
COPY . .
# Set environment variables
ARG NEXT_PUBLIC_FIREBASE_API_KEY
ENV NEXT_PUBLIC_FIREBASE_API_KEY=$NEXT_PUBLIC_FIREBASE_API_KEY
ARG NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
ENV NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=$NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN
ARG NEXT_PUBLIC_FIREBASE_APP_ID
ENV NEXT_PUBLIC_FIREBASE_APP_ID=$NEXT_PUBLIC_FIREBASE_APP_ID
ARG NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
ENV NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=$NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET
ARG NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID
ENV NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=$NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID
ARG NEXT_PUBLIC_FIREBASE_PROJECT_ID
ENV NEXT_PUBLIC_FIREBASE_PROJECT_ID=$NEXT_PUBLIC_FIREBASE_PROJECT_ID
ARG NEXT_PUBLIC_FIREBASE_REGION
ENV NEXT_PUBLIC_FIREBASE_REGION=$NEXT_PUBLIC_FIREBASE_REGION
ARG NEXT_PUBLIC_STRIPE_PUBLIC_KEY
ENV NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY
ARG STRIPE_SECRET_KEY
ENV STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY
ARG NEXT_PUBLIC_STRIPE_PRICE_ID
ENV NEXT_PUBLIC_STRIPE_PRICE_ID=$NEXT_PUBLIC_STRIPE_PRICE_ID
ARG NEXT_PUBLIC_PREMIUM_TOKEN_BALANCE
ENV NEXT_PUBLIC_PREMIUM_TOKEN_BALANCE=$NEXT_PUBLIC_PREMIUM_TOKEN_BALANCE
ARG NEXT_PUBLIC_FREE_TOKEN_START
ENV NEXT_PUBLIC_FREE_TOKEN_START=$NEXT_PUBLIC_FREE_TOKEN_START
ARG HOST
ENV HOST=$HOST
ARG NEXT_PUBLIC_GAIB_IMAGE_DIRECTORY_URL
ENV NEXT_PUBLIC_GAIB_IMAGE_DIRECTORY_URL=$NEXT_PUBLIC_GAIB_IMAGE_DIRECTORY_URL
ARG NEXT_PUBLIC_GAIB_IMAGE_MAX_NUMBER
ENV NEXT_PUBLIC_GAIB_IMAGE_MAX_NUMBER=$NEXT_PUBLIC_GAIB_IMAGE_MAX_NUMBER
ARG NEXT_PUBLIC_GAIB_DEFAULT_IMAGE
ENV NEXT_PUBLIC_GAIB_DEFAULT_IMAGE=$NEXT_PUBLIC_GAIB_DEFAULT_IMAGE
ARG NEXT_PUBLIC_BASE_URL
ENV NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL
ARG GPT_MAX_TOKENS
ENV GPT_MAX_TOKENS=$GPT_MAX_TOKENS
ARG NEXT_PUBLIC_GCS_BUCKET_NAME
ENV NEXT_PUBLIC_GCS_BUCKET_NAME=$NEXT_PUBLIC_GCS_BUCKET_NAME
ARG NEXT_PUBLIC_LOGIN_AUTH_ENABLE
ENV NEXT_PUBLIC_LOGIN_AUTH_ENABLE=$NEXT_PUBLIC_LOGIN_AUTH_ENABLE
ARG NEXT_PUBLIC_ENABLE_IMAGE_SAVING
ENV NEXT_PUBLIC_ENABLE_IMAGE_SAVING=$NEXT_PUBLIC_ENABLE_IMAGE_SAVING
ARG NEXT_PUBLIC_IMAGE_GENERATION_EXAMPLE
ENV NEXT_PUBLIC_IMAGE_GENERATION_EXAMPLE=$NEXT_PUBLIC_IMAGE_GENERATION_EXAMPLE
ARG NEXT_PUBLIC_IMAGE_GENERATION_PROMPT
ENV NEXT_PUBLIC_IMAGE_GENERATION_PROMPT=$NEXT_PUBLIC_IMAGE_GENERATION_PROMPT
ARG NEXT_PUBLIC_FEED_PAGE_SIZE
ENV NEXT_PUBLIC_FEED_PAGE_SIZE=$NEXT_PUBLIC_FEED_PAGE_SIZE
ARG NEXT_PUBLIC_IMAGE_SERVICE
ENV NEXT_PUBLIC_IMAGE_SERVICE=$NEXT_PUBLIC_IMAGE_SERVICE
ARG NEXT_PUBLIC_ENABLE_SPEAKING
ENV NEXT_PUBLIC_ENABLE_SPEAKING=$NEXT_PUBLIC_ENABLE_SPEAKING
ARG NEXT_PUBLIC_ENABLE_IMAGES
ENV NEXT_PUBLIC_ENABLE_IMAGES=$NEXT_PUBLIC_ENABLE_IMAGES
ARG NEXT_PUBLIC_ENABLE_TRANSLATE
ENV NEXT_PUBLIC_ENABLE_TRANSLATE=$NEXT_PUBLIC_ENABLE_TRANSLATE
ARG NEXT_PUBLIC_ENABLE_NEWS_FEED
ENV NEXT_PUBLIC_ENABLE_NEWS_FEED=$NEXT_PUBLIC_ENABLE_NEWS_FEED
ARG NEXT_PUBLIC_ENABLE_AUTH
ENV NEXT_PUBLIC_ENABLE_AUTH=$NEXT_PUBLIC_ENABLE_AUTH
ARG MODEL_NAME
ENV MODEL_NAME=$MODEL_NAME
ARG PRESENCE_PENALITY
ENV PRESENCE_PENALITY=$PRESENCE_PENALITY
ARG FREQUENCY_PENALITY
ENV FREQUENCY_PENALITY=$FREQUENCY_PENALITY
ARG TEMPERATURE_STORY
ENV TEMPERATURE_STORY=$TEMPERATURE_STORY
ARG TEMPERATURE_QUESTION
ENV TEMPERATURE_QUESTION=$TEMPERATURE_QUESTION
ARG NEXT_PUBLIC_TWITCH_CHANNEL_ID
ENV NEXT_PUBLIC_TWITCH_CHANNEL_ID=$NEXT_PUBLIC_TWITCH_CHANNEL_ID
ARG NEXT_PUBLIC_GETIMGAI_MODEL
ENV NEXT_PUBLIC_GETIMGAI_MODEL=$NEXT_PUBLIC_GETIMGAI_MODEL
ARG NEXT_PUBLIC_GETIMGAI_NEGATIVE_PROMPT
ENV NEXT_PUBLIC_GETIMGAI_NEGATIVE_PROMPT=$NEXT_PUBLIC_GETIMGAI_NEGATIVE_PROMPT
ARG NEXT_PUBLIC_GETIMGAI_WIDTH
ENV NEXT_PUBLIC_GETIMGAI_WIDTH=$NEXT_PUBLIC_GETIMGAI_WIDTH
ARG NEXT_PUBLIC_GETIMGAI_HEIGHT
ENV NEXT_PUBLIC_GETIMGAI_HEIGHT=$NEXT_PUBLIC_GETIMGAI_HEIGHT
ARG NEXT_PUBLIC_GETIMGAI_STEPS
ENV NEXT_PUBLIC_GETIMGAI_STEPS=$NEXT_PUBLIC_GETIMGAI_STEPS
ARG NEXT_PUBLIC_GETIMGAI_GUIDANCE
ENV NEXT_PUBLIC_GETIMGAI_GUIDANCE=$NEXT_PUBLIC_GETIMGAI_GUIDANCE
ARG NEXT_PUBLIC_GETIMGAI_SEED
ENV NEXT_PUBLIC_GETIMGAI_SEED=$NEXT_PUBLIC_GETIMGAI_SEED
ARG NEXT_PUBLIC_GETIMGAI_SCHEDULER
ENV NEXT_PUBLIC_GETIMGAI_SCHEDULER=$NEXT_PUBLIC_GETIMGAI_SCHEDULER
ARG NEXT_PUBLIC_GETIMGAI_OUTPUT_FORMAT
ENV NEXT_PUBLIC_GETIMGAI_OUTPUT_FORMAT=$NEXT_PUBLIC_GETIMGAI_OUTPUT_FORMAT
ARG NEXT_PUBLIC_FIREBASE_DATABASE_URL
ENV NEXT_PUBLIC_FIREBASE_DATABASE_URL=$NEXT_PUBLIC_FIREBASE_DATABASE_URL
ARG NEXT_PUBLIC_ADSENSE_PUB_ID
ENV NEXT_PUBLIC_ADSENSE_PUB_ID=$NEXT_PUBLIC_ADSENSE_PUB_ID
ARG ADSENSE_INFO
ENV ADSENSE_INFO=$ADSENSE_INFO
# Generate ads.txt if ADSENSE_INFO is not empty
RUN if [ "$ADSENSE_INFO" != "" ]; then echo "$ADSENSE_INFO" > ./public/ads.txt; fi
RUN pnpm run build
# Service must listen to $PORT environment variable.
# This default value facilitates local development.
ENV PORT 3000
# Run the web service on container startup.
ENTRYPOINT ["pnpm", "start"]