Implementing multistage build Dockerfile
This commit is contained in:
parent
ce79c1ffd4
commit
6c23522d9a
4 changed files with 109 additions and 54 deletions
50
Dockerfile
50
Dockerfile
|
|
@ -1,4 +1,52 @@
|
||||||
FROM osem/base
|
FROM opensuse/leap:15 as base
|
||||||
|
|
||||||
|
# Import google packaging key for chrome
|
||||||
|
COPY google-packaging.key /tmp
|
||||||
|
RUN rpm --import /tmp/google-packaging.key
|
||||||
|
|
||||||
|
# Enable/Disable the repositories we need/don't need
|
||||||
|
RUN zypper rr openSUSE-Leap-15.0-Non-Oss openSUSE-Leap-15.0-Update-Non-Oss; \
|
||||||
|
zypper ar -f https://download.opensuse.org/repositories/devel:/tools/openSUSE_Leap_15.0/devel:tools.repo; \
|
||||||
|
zypper ar -f http://dl.google.com/linux/chrome/rpm/stable/x86_64 google-chrome; \
|
||||||
|
zypper --gpg-auto-import-keys refresh
|
||||||
|
|
||||||
|
# Install our requirements
|
||||||
|
RUN zypper -n install --no-recommends \
|
||||||
|
# for compiling assets/gems
|
||||||
|
nodejs8 gcc-c++ git-core make \
|
||||||
|
# for ...
|
||||||
|
ImageMagick \
|
||||||
|
# for bundler
|
||||||
|
sudo \
|
||||||
|
# as databases
|
||||||
|
libmariadb-devel postgresql-devel sqlite3-devel \
|
||||||
|
# for nokogiri
|
||||||
|
libxml2-devel libxslt-devel \
|
||||||
|
# for the interactive shell
|
||||||
|
ack curl wget w3m vim \
|
||||||
|
# for running our tests
|
||||||
|
phantomjs which \
|
||||||
|
# as ruby
|
||||||
|
ruby2.5-devel \
|
||||||
|
# as browser for feature tests
|
||||||
|
google-chrome-stable
|
||||||
|
|
||||||
|
# Setup sudo
|
||||||
|
RUN echo 'osem ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||||
|
|
||||||
|
# Disable versioned gem binary names
|
||||||
|
RUN echo 'install: --no-format-executable' >> /etc/gemrc
|
||||||
|
|
||||||
|
# Install bundler & foreman
|
||||||
|
RUN gem install bundler:1.17.3 foreman
|
||||||
|
|
||||||
|
# Create our user
|
||||||
|
RUN useradd -m --user-group osem
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "-l"]
|
||||||
|
|
||||||
|
FROM base
|
||||||
|
|
||||||
ARG CONTAINER_USERID
|
ARG CONTAINER_USERID
|
||||||
|
|
||||||
# Configure our user
|
# Configure our user
|
||||||
|
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
FROM opensuse/leap:15
|
|
||||||
|
|
||||||
# Import google packaging key for chrome
|
|
||||||
COPY google-packaging.key /tmp
|
|
||||||
RUN rpm --import /tmp/google-packaging.key
|
|
||||||
|
|
||||||
# Enable/Disable the repositories we need/don't need
|
|
||||||
RUN zypper rr openSUSE-Leap-15.0-Non-Oss openSUSE-Leap-15.0-Update-Non-Oss; \
|
|
||||||
zypper ar -f https://download.opensuse.org/repositories/devel:/tools/openSUSE_Leap_15.0/devel:tools.repo; \
|
|
||||||
zypper ar -f http://dl.google.com/linux/chrome/rpm/stable/x86_64 google-chrome; \
|
|
||||||
zypper --gpg-auto-import-keys refresh
|
|
||||||
|
|
||||||
# Install our requirements
|
|
||||||
RUN zypper -n install --no-recommends \
|
|
||||||
# for compiling assets/gems
|
|
||||||
nodejs8 gcc-c++ git-core make \
|
|
||||||
# for ...
|
|
||||||
ImageMagick \
|
|
||||||
# for bundler
|
|
||||||
sudo \
|
|
||||||
# as databases
|
|
||||||
libmariadb-devel postgresql-devel sqlite3-devel \
|
|
||||||
# for nokogiri
|
|
||||||
libxml2-devel libxslt-devel \
|
|
||||||
# for the interactive shell
|
|
||||||
ack curl wget w3m vim \
|
|
||||||
# for running our tests
|
|
||||||
phantomjs which \
|
|
||||||
# as ruby
|
|
||||||
ruby2.5-devel \
|
|
||||||
# as browser for feature tests
|
|
||||||
google-chrome-stable
|
|
||||||
|
|
||||||
# Setup sudo
|
|
||||||
RUN echo 'osem ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
|
||||||
|
|
||||||
# Disable versioned gem binary names
|
|
||||||
RUN echo 'install: --no-format-executable' >> /etc/gemrc
|
|
||||||
|
|
||||||
# Install bundler & foreman
|
|
||||||
RUN gem install bundler:1.17.3 foreman
|
|
||||||
|
|
||||||
# Create our user
|
|
||||||
RUN useradd -m --user-group osem
|
|
||||||
|
|
||||||
CMD ["/bin/bash", "-l"]
|
|
||||||
|
|
||||||
|
|
@ -1,4 +1,51 @@
|
||||||
FROM osem/base
|
FROM opensuse/leap:15 as base
|
||||||
|
|
||||||
|
# Import google packaging key for chrome
|
||||||
|
COPY google-packaging.key /tmp
|
||||||
|
RUN rpm --import /tmp/google-packaging.key
|
||||||
|
|
||||||
|
# Enable/Disable the repositories we need/don't need
|
||||||
|
RUN zypper rr openSUSE-Leap-15.0-Non-Oss openSUSE-Leap-15.0-Update-Non-Oss; \
|
||||||
|
zypper ar -f https://download.opensuse.org/repositories/devel:/tools/openSUSE_Leap_15.0/devel:tools.repo; \
|
||||||
|
zypper ar -f http://dl.google.com/linux/chrome/rpm/stable/x86_64 google-chrome; \
|
||||||
|
zypper --gpg-auto-import-keys refresh
|
||||||
|
|
||||||
|
# Install our requirements
|
||||||
|
RUN zypper -n install --no-recommends \
|
||||||
|
# for compiling assets/gems
|
||||||
|
nodejs8 gcc-c++ git-core make \
|
||||||
|
# for ...
|
||||||
|
ImageMagick \
|
||||||
|
# for bundler
|
||||||
|
sudo \
|
||||||
|
# as databases
|
||||||
|
libmariadb-devel postgresql-devel sqlite3-devel \
|
||||||
|
# for nokogiri
|
||||||
|
libxml2-devel libxslt-devel \
|
||||||
|
# for the interactive shell
|
||||||
|
ack curl wget w3m vim \
|
||||||
|
# for running our tests
|
||||||
|
phantomjs which \
|
||||||
|
# as ruby
|
||||||
|
ruby2.5-devel \
|
||||||
|
# as browser for feature tests
|
||||||
|
google-chrome-stable
|
||||||
|
|
||||||
|
# Setup sudo
|
||||||
|
RUN echo 'osem ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||||
|
|
||||||
|
# Disable versioned gem binary names
|
||||||
|
RUN echo 'install: --no-format-executable' >> /etc/gemrc
|
||||||
|
|
||||||
|
# Install bundler & foreman
|
||||||
|
RUN gem install bundler:1.17.3 foreman
|
||||||
|
|
||||||
|
# Create our user
|
||||||
|
RUN useradd -m --user-group osem
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "-l"]
|
||||||
|
|
||||||
|
FROM base
|
||||||
|
|
||||||
# Add our files
|
# Add our files
|
||||||
COPY --chown=1000:1000 . /osem/
|
COPY --chown=1000:1000 . /osem/
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
version: "2"
|
version: '3.5'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
database:
|
database:
|
||||||
image: postgres
|
container_name: osem-db
|
||||||
environment:
|
image: postgres:11
|
||||||
PGDATA: /var/lib/postgresql/data/pgdata
|
volumes:
|
||||||
osem:
|
- pg-data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
web:
|
||||||
|
container_name: osem-web
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
args:
|
args:
|
||||||
|
|
@ -17,3 +21,6 @@ services:
|
||||||
- 3000:3000
|
- 3000:3000
|
||||||
volumes:
|
volumes:
|
||||||
- .:/osem
|
- .:/osem
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pg-data:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue