Created
October 21, 2023 10:00
-
-
Save piyushgarg-dev/ea8c5aa52de0496753b88cd938abd728 to your computer and use it in GitHub Desktop.
Docker In One Shot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" ] |
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"]
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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" ]`