我试图运行Strapi使用,但连接到我的Postgres数据库总是失败(数据库托管在Scaleway上)。我试图通过使用strapi start
本地运行Strapi来定位错误,它工作正常。与psql -h xx.xxx.xxx.xx -p xxxxx -U strapi -d strapi
的连接在本地和我的计算示例上都有效。所以连接本身不可能是问题所在,斯特拉皮也不可能。这是我的Dockerfile:
# Creating multi-stage build for production
FROM node:18-alpine as build
RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev vips-dev git > /dev/null 2>&1
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY package.json package-lock.json ./
RUN npm install -g node-gyp
RUN npm config set fetch-retry-maxtimeout 600000 -g && npm install --only=production
ENV PATH /opt/node_modules/.bin:$PATH
WORKDIR /opt/app
COPY . .
RUN npm run build # strapi build
# Creating final production image
FROM node:18-alpine
RUN apk add --no-cache vips-dev
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY --from=build /opt/node_modules ./node_modules
WORKDIR /opt/app
COPY --from=build /opt/app ./
ENV PATH /opt/node_modules/.bin:$PATH
RUN chown -R node:node /opt/app
USER node
EXPOSE 1337
CMD ["npm", "run", "start"] # strapi start
我用sudo docker run -p 1337:1337 -p 22092:22092 --env-file .env rg.fr-par.scw.cloud/xxx/xxx
运行容器
我还确保了Docker可以在运行容器时打印出所有需要的环境变量,这是可行的。
1条答案
按热度按时间gwo2fgha1#
我找到了答案。我的密码使用了一些特殊的字符,所以我不得不在我的.env文件中使用引号。我改变了这一点,并尝试了新的没有引号的工作:)