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
|
||||
|
||||
# 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
|
||||
COPY --chown=1000:1000 . /osem/
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
version: "2"
|
||||
version: '3.5'
|
||||
|
||||
services:
|
||||
|
||||
database:
|
||||
image: postgres
|
||||
environment:
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
osem:
|
||||
container_name: osem-db
|
||||
image: postgres:11
|
||||
volumes:
|
||||
- pg-data:/var/lib/postgresql/data
|
||||
|
||||
web:
|
||||
container_name: osem-web
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
|
|
@ -17,3 +21,6 @@ services:
|
|||
- 3000:3000
|
||||
volumes:
|
||||
- .:/osem
|
||||
|
||||
volumes:
|
||||
pg-data:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue