build fixes

main
Cogent Apps 2023-04-15 10:33:19 +00:00
parent eb58d900b5
commit 8ec99aba68
4 changed files with 49 additions and 30 deletions

1
.dockerignore 100644
View File

@ -0,0 +1 @@
**/node_modules

View File

@ -1,40 +1,68 @@
FROM node:19-alpine AS build
FROM node:19-bullseye-slim AS build
RUN addgroup -S app && adduser -S app -G app
RUN mkdir /app && chown app:app /app
RUN apk add --update --no-cache git
USER app
RUN apt-get update && \
apt-get install -y \
git
# Set working directory
WORKDIR /app
# Copy package.json and tsconfig.json
COPY ./app/package.json ./
COPY ./app/tsconfig.json ./
# Install Node.js dependencies
RUN npm install
# Copy craco.config.js, public, and src directories
COPY ./app/craco.config.js ./craco.config.js
COPY ./app/public ./public
COPY ./app/src ./src
# Set environment variables
ENV NODE_ENV=production
ENV REACT_APP_AUTH_PROVIDER=local
# Build the application
RUN npm run build
FROM node:19-alpine AS server
RUN addgroup -S app && adduser -S app -G app
FROM nvidia/cuda:12.1.0-devel-ubuntu20.04 AS server
# Set the working directory
WORKDIR /app
COPY ./server/package.json ./
COPY ./server/tsconfig.json ./
# Update the package index and install required dependencies
RUN apt-get update && \
apt-get install -y \
curl \
build-essential \
libssl-dev \
libffi-dev \
python3-dev \
python3-pip \
openssl
RUN apk add --update --no-cache python3 py3-pip make g++ git
RUN mkdir /usr/local/nvm
ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 19.9.0
RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install $NODE_VERSION \
&& nvm alias default $NODE_VERSION \
&& nvm use default
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
# Copy package.json and requirements.txt into the working directory
COPY ./server/package.json ./server/requirements.txt ./server/tsconfig.json ./
# Install Node.js dependencies from package.json
RUN npm install
# Install Python dependencies from requirements.txt
RUN pip3 install --no-cache-dir -r requirements.txt
# Copy the rest of the application code into the working directory
COPY ./server/src ./src
RUN CI=true sh -c "cd /app && mkdir data && npm run start && rm -rf data"

View File

@ -1,5 +1,6 @@
const cracoWasm = require("craco-wasm");
const webpack = require("webpack");
const path = require("path");
module.exports = {
plugins: [
@ -26,12 +27,17 @@ module.exports = {
fallback: {
buffer: require.resolve("buffer"),
},
alias: {
'@ffmpeg/ffmpeg': path.resolve(__dirname, 'src/stub.js')
},
},
plugins: [
new webpack.ProvidePlugin({
Buffer: ["buffer", "Buffer"],
}),
],
ignoreWarnings: [/Failed to parse source map/],
cache: false,
},
},
}

View File

@ -1,16 +0,0 @@
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
working_dir: /app
volumes:
- ./data:/app/data
command: npm run start
ports:
- 3000:3000
environment:
- PORT=3000
- WEBAPP_PORT=3000