[英]Docker: run script : ERROR: Unable to lock database: Permission denied
Hello I'm trying to run a script to just start my yarn dev after my postgres is connected:您好,我正在尝试运行一个脚本来在我的 postgres 连接后启动我的纱线开发:
until psql -c '\l'; do
echo >&2 "$(date +%Y%m%dt%H%M%S) Postgres is unavailable - sleeping"
sleep 1
done
echo >&2 "$(date +%Y%m%dt%H%M%S) Postgres is up - executing command"
exec ${@}
docker file: docker 文件:
#building code
FROM node:lts-alpine
RUN mkdir -p /home/node/api && chown -R node:node /home/node/api
WORKDIR /home/node/api
COPY ormconfig.json .env package.json yarn.* ./
USER node
RUN yarn
COPY --chown=node:node . .
RUN apk add --no-cache openssl
COPY wait-pg.sh ./
RUN chmod +x /wait-pg.sh
ENTRYPOINT ["/wait-pg.sh"]
EXPOSE 4000
CMD ["yarn", "dev"]
docker compose: docker 组成:
version: '3.7'
services:
db-pg:
image: postgres:12
container_name: db-pg
ports:
- '${DB_PORT}:5432'
environment:
ALLOW_EMPTY_PASSWORD: 'no'
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASS}
POSTGRES_DB: ${DB_NAME}
volumes:
- ci-postgres-data:/data
ci-api:
build: .
container_name: ci-api
volumes:
- .:/home/node/api
- /home/node/api/node_modules
ports:
- '${SERVER_PORT}:${SERVER_PORT}'
depends_on:
- db-pg
command: ['./wait-pg.sh', 'yarn', 'dev']
logging:
driver: 'json-file'
options:
max-size: '10m'
max-file: '5'
volumes:
ci-postgres-data:
and get this error:并得到这个错误:
---> Running in c5add5098b70 ERROR: Unable to lock database: Permission denied ERROR: Failed to open apk database: Permission denied ERROR: Service 'ci-api' failed to build: The command '/bin/sh -c apk add --no-cache openssl' returned a non-zero code: 99
--->在c5add5098b70中运行错误:无法锁定数据库:权限被拒绝错误:无法打开apk数据库:权限被拒绝错误:服务'ci-api'未能构建:命令'/bin/sh -c apk add - -no-cache openssl' 返回一个非零代码:99
You are getting the error because the node user you are trying to use does not have permissions to run the command.您收到错误是因为您尝试使用的节点用户没有运行该命令的权限。 Move the user definition to after the commands, something like this:
将用户定义移动到命令之后,如下所示:
#building code
FROM node:lts-alpine
RUN mkdir -p /home/node/api && chown -R node:node /home/node/api
WORKDIR /home/node/api
COPY ormconfig.json .env package.json yarn.* ./
RUN yarn
COPY --chown=node:node . .
RUN apk add --no-cache openssl
COPY wait-pg.sh .
RUN chmod +x ./wait-pg.sh
USER node
ENTRYPOINT ["./wait-pg.sh"]
EXPOSE 4000
CMD ["yarn", "dev"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.