ってことで、自宅サーバで動いてたMSSQLを外に出すことにしたんですが・・。
sqlservr: This program requires a machine with at least 2000 megabytes of memory.
🤔
おうふ・・。
ってことで公式の方を見に行ったら見事に2GB以上じゃないとダメだとのこと。
At least 2GB of RAM (3.25 GB prior to 2017-CU2). Make sure to assign enough memory to the Docker VM if you’re running on Docker for Mac or Windows.
でも俺は1GBのVPSで動かしたいんだ!
ってことで色々ネットを漁ってて見つけたやつを一応ここにメモがてら書いておきます。
(2017は結構情報ありますが2019はダメだったと言う情報が多くて唯一見つけたやつ)
Dockerfile
FROM oraclelinux:7-slim AS build0
WORKDIR /root
RUN yum update -y && yum install -y binutils gcc
ADD wrapper.c /root/
RUN gcc -shared -ldl -fPIC -o wrapper.so wrapper.c
FROM mcr.microsoft.com/mssql/rhel/server:2019-latest
COPY --from=build0 /root/wrapper.so /root/
ADD wrapper.c /root/
USER root
RUN echo "/root/wrapper.so" > /etc/ld.so.preload
USER mssql
どうやらRHEL版を使うようにしたみたいです。
同じやり方でUbuntu版やると動かないのでネット情報は動かないで溢れているのかも?
あとはこいつをビルドしてあげるだけ。
一応動くには動いてます。
エラーも今のところなさそうなので大丈夫ですが、2GBに偽装しているみたいですし、もともと2GB要求されているので危険が伴うので実際はやめたほうがいいでしょう・・。
私はまだそんなに重要なやつを動かしているわけじゃないので一旦このまま進めようかなと思います。
Swapfile でごまかせないか?今使用しているVPS は ディスク書き込み/読み込み量は限られているかもしれませんが。。。
meme
2GBのスワップがすでにありますが効果はありませんでした。
(実際は2GiB必要らしいですが、多分スワップも2GiBあるんじゃないかと、ちゃんと見てないけどw)
他の情報を見てもスワップは意味がないと言う話もあったりしますが試して見る価値はあるかも?
どちらにせよスワップを4GBに増やす予定なのでそのときにやってみます。