web-dev-qa-db-ja.com

Alpine Dockerエラー:データベースをロックできません:権限が拒否されましたエラー:apkデータベースを開けませんでした:権限が拒否されました

だから私はtestcafeのデフォルトのDockerを使用しました。Dockerハブではtestcafe/testcafeで、いくつかのtestcafeスクリプトを実行する必要があります。

ただし、エラー時に起動するスクリーンショットがどこかにアップロードされ、後でdockerイメージの実行が完了した後で確認できます。

私はbashを使用するImgurプログラムを使用しているので、sh互換にするためにいくつかのことをやり直し、curlを必要とする以外はすべて機能します。走ってみた

apk add curl

エラーが出ます

ERROR: Unable to lock database: Permission denied ERROR: Failed to open apk database: 

これは、これを行う権限がないことを意味しますが、これを回避するには、ルートになるための方法があります(これはbitbucketパイプラインにあります)。

私は本当に自分のドッカーを作りたくありません。

また、これに関して私が見つけたすべての質問は、Dockerの作成中にインストールすることに関するものですが、私の質問は、Dockerの作成後にこれを行う方法です。 thx(細かい答えはスクリーンショットを保存する別の方法ですが、できればsshを使用しないでください)。

26
Vladimir_314159

最善の解決策は、USER <youruser>[〜#〜] after [〜#〜] Dockerビルドが失敗している行。ほとんどの場合、USER行をコマンドまたはエントリポイントの真上に追加しても安全です。

例えば:

FROM python:3.8.0-Alpine

RUN addgroup -S app && adduser -S -G app app

RUN apk add --no-cache libmaxminddb postgresql-dev gcc musl-dev

ADD . .

USER app

ENTRYPOINT ["scripts/entrypoint.sh"]

CMD ["scripts/gunicorn.sh"]
1
mmla