Skapar en container med dockerfil och allt

This commit is contained in:
2025-01-23 20:54:35 +01:00
parent 6eff6e7e77
commit 2e160f8314
4 changed files with 49 additions and 3 deletions

2
.dockerignore Normal file
View File

@@ -0,0 +1,2 @@
node_modules
npm-debug.log

20
Dockerfile Normal file
View File

@@ -0,0 +1,20 @@
# Use the official Node.js image as the base image
FROM node:14
# Set the working directory
WORKDIR /usr/src/app
# Copy package.json and package-lock.json
COPY package*.json ./
# Install dependencies
RUN npm install
# Copy the rest of the application code
COPY . .
# Expose the port the app runs on
EXPOSE 3044
# Command to run the application
CMD ["node", "server.js"]

18
docker-compose.yml Normal file
View File

@@ -0,0 +1,18 @@
version: '3.8'
services:
org-todo-pwa:
image: org-todo-pwa
build: .
ports:
- "3044:3044"
volumes:
- /srv/swarm/org-todo-pwa/data:/data
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.plan.tls=true"
- "traefik.http.routers.plan.tls.certresolver=myhttpchallenge"
- "traefik.http.routers.plan.rule=Host(`todo. casablanca.wahlberg.se`)"
- "traefik.http.routers.plan.entrypoints=websecure"

View File

@@ -9,6 +9,12 @@ const port = 3044;
app.use(bodyParser.json()); app.use(bodyParser.json());
app.use(express.static('public')); app.use(express.static('public'));
// Ensure the /data directory exists
const dataDir = path.join('/data');
if (!fs.existsSync(dataDir)) {
fs.mkdirSync(dataDir, { recursive: true });
}
// Endpoint to receive task data and append to file // Endpoint to receive task data and append to file
app.post('/add-task', (req, res) => { app.post('/add-task', (req, res) => {
const { subject, description, scheduled } = req.body; const { subject, description, scheduled } = req.body;
@@ -18,7 +24,7 @@ app.post('/add-task', (req, res) => {
* TODO ${subject} * TODO ${subject}
SCHEDULED: <${scheduled}> SCHEDULED: <${scheduled}>
:LOGBOOK: :LOGBOOK:
- State "TODO" from [${currentDateTime}] - State "TODO" from "TODO" [${currentDateTime}]
:END: :END:
`; `;
@@ -28,12 +34,12 @@ app.post('/add-task', (req, res) => {
${description} ${description}
SCHEDULED: <${scheduled}> SCHEDULED: <${scheduled}>
:LOGBOOK: :LOGBOOK:
- State "TODO" from [${currentDateTime}] - State "TODO" from "TODO" [${currentDateTime}]
:END: :END:
`; `;
} }
const filePath = path.join(__dirname, 'tasks.org'); const filePath = path.join(dataDir, 'tasks.org');
fs.appendFile(filePath, orgFormattedData, (err) => { fs.appendFile(filePath, orgFormattedData, (err) => {
if (err) { if (err) {
return res.status(500).send('Error writing to file.'); return res.status(500).send('Error writing to file.');