s4s-editor / Dockerfile
soiz1's picture
Update Dockerfile
50a3b00 verified
raw
history blame
3.02 kB
# ベースイメージとして Node.js を使用
FROM node:18
# 作業ディレクトリを設定
WORKDIR /app
# ホストのファイルをコンテナにコピー
COPY . .
# translations ディレクトリを作成し、権限を設定
RUN mkdir -p /app/translations && chmod -R 777 /app/translations
RUN chmod -R 777 /app
# 依存関係をインストール(競合を無視)
RUN npm install --legacy-peer-deps
# OpenSSL の互換オプションを有効化
ENV NODE_OPTIONS="--openssl-legacy-provider"
RUN LF=$(printf '\\\012_') && \
LF=${LF%_} && \
EXTENSION_NAME=ML2Scratch && \
EXTENSION_ID=ml2scratch && \
COLLABORATOR=champierre && \
EXTENSION_DESCRIPTION="ML2Scratch Blocks." && \
cd node_modules/scratch-vm && \
npm install ml5@0.12.2 && \
cd ../../ && \
mkdir -p node_modules/scratch-vm/src/extensions/scratch3_${EXTENSION_ID} && \
cp ${EXTENSION_ID}/scratch-vm/src/extensions/scratch3_${EXTENSION_ID}/index.js node_modules/scratch-vm/src/extensions/scratch3_${EXTENSION_ID}/ && \
mv node_modules/scratch-vm/src/extension-support/extension-manager.js node_modules/scratch-vm/src/extension-support/extension-manager.js_orig && \
node_modules/scratch-vm/src/extension-support/extension-manager.js_orig \
node_modules/scratch-vm/src/extension-support/extension-manager.js && \
mkdir -p src/lib/libraries/extensions/${EXTENSION_ID} && \
cp ${EXTENSION_ID}/scratch-gui/src/lib/libraries/extensions/${EXTENSION_ID}/${EXTENSION_ID}.png src/lib/libraries/extensions/${EXTENSION_ID}/ && \
cp ${EXTENSION_ID}/scratch-gui/src/lib/libraries/extensions/${EXTENSION_ID}/${EXTENSION_ID}-small.png src/lib/libraries/extensions/${EXTENSION_ID}/ && \
mv src/lib/libraries/extensions/index.jsx src/lib/libraries/extensions/index.jsx_orig && \
DESCRIPTION="\
{${LF}\
name: '${EXTENSION_NAME}',${LF}\
extensionId: '${EXTENSION_ID}',${LF}\
collaborator: '${COLLABORATOR}',${LF}\
iconURL: ${EXTENSION_ID}IconURL,${LF}\
insetIconURL: ${EXTENSION_ID}InsetIconURL,${LF}\
description: (${LF}\
<FormattedMessage${LF}\
defaultMessage='${EXTENSION_DESCRIPTION}'${LF}\
description='${EXTENSION_DESCRIPTION}'${LF}\
id='gui.extension.${EXTENSION_ID}blocks.description'${LF}\
/>${LF}\
),${LF}\
featured: true,${LF}\
disabled: false,${LF}\
internetConnectionRequired: true,${LF}\
bluetoothRequired: false${LF}\
}," && \
sed -e "s|^export default \[$|import ${EXTENSION_ID}IconURL from './${EXTENSION_ID}/${EXTENSION_ID}.png';${LF}import ${EXTENSION_ID}InsetIconURL from './ml2scratch/ml2scratch-small.png';${LF}${LF}export default [${LF}${DESCRIPTION}|g" \
src/lib/libraries/extensions/index.jsx_orig > src/lib/libraries/extensions/index.jsx
# コンテナの起動時にサーバーを実行
CMD ["npm", "start"]
# コンテナがリッスンするポート
EXPOSE 3000