mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-11 23:04:52 +09:00
The prepare script runs before publishing a package, after installation of a package from source, and when running npm install without arguments in the repository. These are the times where a build of the web interface files are required to make the web interface work and removes a manual step from using the package(s). The "build" script on the other hand is never automatically invoked by npm.
59 lines
1.7 KiB
Docker
59 lines
1.7 KiB
Docker
FROM node:12 as subspace_storage_builder
|
|
RUN apt update && apt install -y git
|
|
WORKDIR /
|
|
RUN git clone https://github.com/clusterio/subspace_storage.git
|
|
WORKDIR /subspace_storage
|
|
RUN npm install \
|
|
&& node build
|
|
|
|
FROM node:12 as clusterio_builder
|
|
RUN apt update \
|
|
&& apt install -y wget \
|
|
&& mkdir /clusterio
|
|
WORKDIR /clusterio
|
|
RUN wget -q -O factorio.tar.gz https://www.factorio.com/get-download/latest/headless/linux64 && tar -xf factorio.tar.gz && rm factorio.tar.gz
|
|
# Copy project files into the container
|
|
COPY . .
|
|
|
|
RUN pnpm install
|
|
|
|
# Install plugins. This is intended as a reasonable default, enabling plugins to make for fun gameplay.
|
|
# If you want a different set of plugins, consider using this as the base image for your own.
|
|
#RUN pnpm install @clusterio/plugin-subspace_storage
|
|
#RUN npx clusteriomaster plugin add @clusterio/plugin-subspace_storage
|
|
|
|
COPY --from=subspace_storage_builder /subspace_storage/dist/ /clusterio/sharedMods/
|
|
|
|
# Build Lua library mod
|
|
RUN node packages/lib/build_mod --build --source-dir packages/slave/lua/clusterio_lib \
|
|
&& mv dist/* sharedMods/ \
|
|
&& mkdir temp \
|
|
&& mkdir temp/test \
|
|
&& cp sharedMods/ temp/test/ -r \
|
|
&& ls sharedMods
|
|
|
|
# Remove node_modules
|
|
RUN find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
|
|
|
|
FROM frolvlad/alpine-glibc AS clusterio_final
|
|
|
|
RUN apk add --update bash nodejs npm
|
|
|
|
COPY --from=clusterio_builder /clusterio /clusterio
|
|
WORKDIR /clusterio
|
|
|
|
# Install runtime dependencies
|
|
RUN pnpm install --production
|
|
LABEL maintainer "danielv@danielv.no"
|
|
|
|
FROM frolvlad/alpine-glibc AS clusterio_testing
|
|
|
|
RUN apk add --update bash nodejs npm
|
|
|
|
COPY --from=clusterio_builder /clusterio /clusterio
|
|
WORKDIR /clusterio
|
|
|
|
# Install runtime dependencies
|
|
RUN pnpm install
|
|
RUN pnpm install chalk semver
|