Add container security section
This commit is contained in:
25
11-development-workflow/api-node/Dockerfile.dev
Normal file
25
11-development-workflow/api-node/Dockerfile.dev
Normal file
@ -0,0 +1,25 @@
|
||||
# Pin specific version for stability
|
||||
# Use alpine for reduced image size
|
||||
FROM node:19.4-alpine as dev
|
||||
|
||||
# Specify working directory other than /
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Copy only files required to install
|
||||
# dependencies (better layer caching)
|
||||
COPY package*.json ./
|
||||
|
||||
# Install only production dependencies
|
||||
# Use cache mount to speed up install of existing dependencies
|
||||
RUN --mount=type=cache,target=/usr/src/app/.npm \
|
||||
npm set cache /usr/src/app/.npm && \
|
||||
npm install
|
||||
|
||||
# Copy remaining source code AFTER installing dependencies.
|
||||
# Again, copy only the necessary files
|
||||
COPY . .
|
||||
|
||||
# Indicate expected port
|
||||
EXPOSE 3000
|
||||
|
||||
CMD [ "npm", "run", "dev" ]
|
||||
12
11-development-workflow/api-node/README.md
Normal file
12
11-development-workflow/api-node/README.md
Normal file
@ -0,0 +1,12 @@
|
||||
Remote debugging setup (vscode `launch.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Docker: Attach to Node",
|
||||
"type": "node",
|
||||
"request": "attach",
|
||||
"localRoot": "${workspaceFolder}/docker-course/devops-directive-docker-course/05-example-web-application/api-node",
|
||||
"remoteRoot": "/usr/src/app",
|
||||
"port": 9229
|
||||
},
|
||||
```
|
||||
Reference in New Issue
Block a user