アップデート後にDebianのmssql-serverが破損していますか?

アップデート後にDebianのmssql-serverが破損していますか?

しばらく前にDebian VPSにmssql-serverをインストールしましたが、正常に動作しました。これでmssql-serverが実行されておらず、何が変更されたのかわかりません。

入ると手に/opt/mssql/bin/sqlserver入れる

2019-07-07 18:13:19.79 Logon       Error: 18456, Severity: 14, State: 7.
2019-07-07 18:13:19.79 Logon       Login failed for user 'sa'. Reason: An error occurred while evaluating the password. [CLIENT: 127.0.0.1]

私がサービスを開始したときにsudo systemctl start mssql-server私が得るものは

jul 07 18:27:23 vps495056 systemd[1]: Started Microsoft SQL Server Database Engine.
-- Subject: Unit mssql-server.service has finished start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit mssql-server.service has finished starting up.
-- 
-- The start-up result is done.
jul 07 18:27:23 vps495056 sqlservr[28229]: /opt/mssql/bin/sqlservr Error: Directory [/var/opt/system/] could not be created.  Errno [13]
jul 07 18:27:23 vps495056 systemd[1]: mssql-server.service: Main process exited, code=exited, status=1/FAILURE

var/opt/systemディレクトリがないので作成しました。

drwxr-sr-x  2 mssql    mssql     4096 jul  5 18:46 system

mssql構成ファイル

# cat /var/opt/mssql/mssql.conf 
[EULA]
accepteula = Y

[language]
lcid = 1033

mssql-serverを再インストールしてみましたが、成功しませんでした。その後も同じエラーが発生します。

答え1

1年前、mssqlはルートイメージから非ルートイメージに変換されました。バインドされたボリュームがあり、Linuxホストで実行されているdocker sql-serverコンテナに権限の問題が発生します(=>バインドされたボリュームに書き込む権限がありません)。

この問題に対する解決策はほとんどありません。

1. rootとしてdockerを実行します。

例えば。書く:

version: '3.6'
services:
  mssql:
    image: mcr.microsoft.com/mssql/server:2019-latest
    user: root
    ports:
      - 1433:1433
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=BLAH
    volumes:
      - ./data:/var/opt/mssql/data

源泉:https://github.com/microsoft/mssql-docker/issues/13#issuecomment-641904197

2. 正しいディレクトリ所有者の設定 (mssql)

  1. DockerイメージでmssqlユーザーIDを確認すると、次のように sudo docker run -it mcr.microsoft.com/mssql/server id mssql なります。uid=10001(mssql) gid=0(root) groups=0(root)
  2. フォルダ所有者の変更 sudo chown 10001 VOLUME_DIRECTORY

スペイン語ソース:https://www.eiximenis.dev/posts/2020-06-26-sql-server-docker-no-se-ejecuta-en-root/

3. フルアクセス(推奨しない)

ホストのデータベースファイルへのフルアクセスを許可します。 sudo chmod 777 -R VOLUME_DIRECTORY

関連情報