-
-
Save piyushgarg-dev/ea8c5aa52de0496753b88cd938abd728 to your computer and use it in GitHub Desktop.
| version: "3.8" | |
| services: | |
| postgres: | |
| image: postgres # hub.docker.com | |
| ports: | |
| - "5432:5432" | |
| environment: | |
| POSTGRES_USER: postgres | |
| POSTGRES_DB: review | |
| POSTGRES_PASSWORD: password | |
| redis: | |
| image: redis | |
| ports: | |
| - "6379:6379" |
| FROM ubuntu | |
| RUN apt-get update | |
| RUN apt-get install -y curl | |
| RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - | |
| RUN apt-get upgrade -y | |
| RUN apt-get install -y nodejs | |
| COPY package.json package.json | |
| COPY package-lock.json package-lock.json | |
| COPY main.js main.js | |
| RUN npm install | |
| ENTRYPOINT [ "node", "main.js" ] |
Doing this also works fine, just perform the upgrade before install, and install the nodejs image:
`FROM ubuntu
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get upgrade -y
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
COPY package.json package.json
COPY package-lock.json package-lock.json
COPY index.js index.js
RUN npm install
ENTRYPOINT [ "node","index.js" ]`
while running above code in root directory, npm install will throw an error.
To solve this we can change the work directory: e.g WORKDIR /usr/app
we can put this command before COPY commands and it works fine @piyushgarg-dev
Make sure you have added these commands:
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
Use this one for maximum efficient output with no error:
FROM ubuntu
Install dependencies
RUN apt-get update &&
apt-get install -y curl &&
curl -sL https://deb.nodesource.com/setup_18.x | bash - &&
apt-get install -y nodejs &&
apt-get upgrade -y &&
apt-get clean &&
rm -rf /var/lib/apt/lists/*
Set working directory
WORKDIR /app
Copy application files
COPY . .
Install node dependencies
RUN npm install
Set the default command
ENTRYPOINT ["node", "app.js"]
Use this one for maximum efficient output with no error:
1-----------------------------------------------------------------------------
FROM ubuntu
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get upgrade -y
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
COPY package.json package.json
COPY package-lock.json package-lock.json
COPY index.js index.js
RUN npm install
ENTRYPOINT [ "node","index.js" ]
OR
2--------------------------------------------------
FROM node
COPY package.json package.json
COPY package-lock.json package-lock.json
COPY index.js index.js
RUN npm install
ENTRYPOINT [ "node","index.js" ]
This worked for me:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
RUN node -v
RUN npm -v
COPY package.json package-lock.json ./
RUN npm install
COPY index.js .
EXPOSE 3000
CMD ["node", "index.js"]
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "main.js"]
these is the most simplest way through which u too can build a dockerfile as its in smaller in size instead of using ubuntu in docker file
while running above code in root directory, npm install will throw an error.
To solve this we can change the work directory:
e.g WORKDIR /usr/app
we can put this command before COPY commands
and it works fine
@piyushgarg-dev