Errno :: EACCES: В доступе отказано @ rb_sysopen - /app/db/schema.rb - PullRequest
0 голосов
/ 20 февраля 2020

Я получаю следующую ошибку при попытке запустить rake db:migrate на моем экземпляре ec2. У меня есть экземпляр RDS postgres.

Errno::EACCES: Permission denied @ rb_sysopen - /app/db/schema.rb**

ниже приведено соответствующее содержимое моего Dockerfile

FROM ubuntu:18.04

RUN apt-get update

RUN useradd -m deploy

WORKDIR /app

RUN mkdir -p vendor
COPY vendor/cache vendor/cache
RUN bundle install --deployment --local --without test development
COPY . .

RUN SECRET_KEY_BASE=111 RAILS_ENV=production bin/rake assets:precompile

RUN mkdir -p tmp/pids
RUN chown -R deploy tmp log

USER deploy
ENV RAILS_LOG_TO_STDOUT 1

EXPOSE 3000
CMD bin/rake db:migrate && bundle exec passenger start --address 0.0.0.0 --port 3000 --auto --disable-anonymous-telemetry -e production

вот мой файл развертывания yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: eks-learning-backend
spec:
  template:
    metadata:
      labels:
        name: eks-learning-backend
    spec:
      containers:
      - name: rails-app
        image: zzz.us-east-1.amazonaws.com/eks:16
        env:
        - name: EKS_DATABASE_NAME
          valueFrom:
            secretKeyRef:
              name: database-config
              key: database_name
        - name: EKS_DATABASE_HOST
          value: zzz.us-east-1.rds.amazonaws.com
        - name: EKS_DATABASE_USERNAME
          valueFrom:
            secretKeyRef:
              name: database-config
              key: username
        - name: EKS_DATABASE_PASSWORD
          valueFrom:
            secretKeyRef:
              name: database-config
              key: password
        - name: RAILS_MASTER_KEY
          value: zzxx
        - name: RAILS_ENV
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace

Любая помощь в этом была бы очень полезна! Спасибо.

1 Ответ

0 голосов
/ 21 февраля 2020

Проблема в том, что у пользователя недостаточно прав. Вы включили только RUN chown -R deploy tmp log, в то время как вам также нужно дать ему доступ к /app/db/ dir. Добавление дополнительных chown для DB dir решит проблему.

...