Zeitのドキュメントによると
ファイル システムに関しては、Docker デプロイメント内に制限はありません。常に書き込み可能で読み取り可能です。
実際、私の小さなテストでは、ファイルの書き込みに成功しているようです:
app.get('/write', (req, res) => {
console.log({
__dirname,
cwd: process.cwd()
})
const text = `some bit of text`
const dirpath = path.resolve(process.cwd(), 'uploads')
const fullpath = path.resolve(dirpath, `file-${+new Date()}.txt`)
mkdirp(dirpath, function(error) {
if (error) {
console.error(error)
} else {
fs.writeFile(fullpath, text, error => {
if (error) {
console.error('error writing', error)
} else {
console.log(`file written at ${fullpath}`)
fs.readdir(dirpath, function(err, items) {
for (var i = 0; i < items.length; i++) {
console.log(items[i])
}
})
res.send('File written')
}
})
}
})
})
/write
ルートを数回更新すると、ファイルのリストが出力されます。ただし、Zeit の「ソース」パネルには、Dockerfile によってコピーされたファイルしか表示されません。
参考までに、私のDockerfile :
FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "npm", "start" ]
# ^^^^^^^^^^^^ "start": "node ./build/server"